アプリが携帯電話にインストールされている場合は、iOS で自分のドメインの URL (例: http://martijnthe.nl ) を自分のアプリで開き、インストールされていない場合は Mobile Safari で開くようにしたいと思います。
これには固有のプロトコル サフィックスを作成し、Info.plist に登録することは可能だと読みましたが、アプリがインストールされていない場合、Mobile Safari ではエラーが発生します。
回避策は何でしょうか?
一つのアイデア:
1) 任意のデスクトップブラウザで開くhttp:// URLを使用し、ブラウザを通じてサービスをレンダリングする
2) ユーザーエージェントを確認し、モバイル Safari の場合は、myprotocol:// URL を開いて iPhone アプリを開こうとします。失敗した場合は、モバイル iTunes を開いてアプリをダウンロードします。
これがうまくいくかどうかはわかりません... 提案はありますか? ありがとうございます!
ベストアンサー1
最も邪魔にならない方法は次の通りだと思います:
- ユーザーエージェントがiPhone/iPod Touchのものかどうかを確認します
appInstalled
クッキーを確認する- クッキーが存在し、trueに設定されている場合は、設定
window.location
するyour-uri://
(またはサーバー側でリダイレクトを実行する) - Cookie が存在しない場合は、「サイト名に iPhone アプリケーションがあることをご存知ですか?」というモーダルを開き、「はい、すでにインストールしています」、「いいえ、でも試してみたいです」、「そのままにしておきます」ボタンを表示します。
- 「はい」ボタンはクッキーをtrueに設定し、
your-uri://
- 「いいえ」ボタンは「http://itunes.com/apps/yourappname」にリダイレクトされ、デバイス上でApp Storeが開きます。
- 「放っておいて」ボタンはクッキーをfalseに設定し、モーダルを閉じます
- 「はい」ボタンはクッキーをtrueに設定し、
私が試してみたが、少し扱いにくいと感じたもう 1 つのオプションは、JavaScript で次の操作を実行することでした。
setTimeout(function() {
window.location = "http://itunes.com/apps/yourappname";
}, 25);
// If "custom-uri://" is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly "Cannot Open Page"
// dialogue prior to the App Store application launching
window.location = "custom-uri://";