3

iOS がカスタム URL スキームを処理できるかどうかをテストする方法はありますか? モバイルサファリのハイパーリンクからアプリを開くことができるように、カスタム URL スキームを登録したアプリがあります。ただし、アプリがインストールされていない場合は、アプリストアにアクセスしてアプリをダウンロードする必要があることをユーザーに伝えたいと思います。

URL をテストし、失敗した場合とその理由をキャッチする賢い方法はありますか?

4

1 に答える 1

7

これは私が思いつくことができる最高のものですが、iOS 5 でのみテストされています。

モバイル サファリのリンクが の場合は<a href="myapp://path">link text</a>、次のように変更します<a href="http://mydomain.com/launchapp?location=path">link text</a>。次に、ページの上部に/launchapp、目的の URL を持つ非表示の iframe を配置します<iframe src="myapp://path" style="display:none"></iframe>。ページの本文に、アプリをダウンロードするにはアプリストアにアクセスする必要があるというメッセージを入力します。

ユーザーがアプリを持っている場合:launchappページは表示されず、シームレスにアプリの URL に誘導されます。ユーザーがアプリを持っていない場合: 「URL を読み込めませんでした」という厄介な警告が表示されます。[OK] をクリックすると、「アプリをダウンロードする必要があります」ページが表示されます。

更新- 2013 年 3 月

関連するSOの回答に関するこのコメントを確認してください。どうやら、アプリがまだインストールされていない場合は、次のようなアプローチを使用して App Store のアプリにシームレスにリダイレクトできます(テストされていません)

// setup fallback (redirect to App Store)
var start = (new Date()).valueOf();
setTimeout(function() {
    var end = (new Date()).valueOf();

    // prevent App Store redirect upon returning to safari from myapp
    if (end - start > 1000) return;

    // get a seamless redirect if you use itms://... instead of http://itunes.com/...
    window.location = 'itms://my/app/URI';
}, 25);

// Attempt to load my custom url scheme
window.location = 'myapp://my/path'
于 2012-07-09T16:01:06.543 に答える