まず、私たちにはアプリがあり、私たちのドメインはiOS9とiOS10上のユニバーサルリンクをサポートしています。ランディングページには、ドメインに 'href'属性が設定された要素があります。それをクリックすると、ネイティブアプリが起動されるか、ブラウザでULが開きます。これは機能しています。iframe内でiOSユニバーサルリンクを動作させる方法
ただし、同じランディングページをiframe内に配置すると(予想される使用例)、そのボタンは期待どおりに機能しません。私たちのアプリを起動するのではなく、コンソールで見ることができます: "https://domain/path/page.html"は、安全でないコンテンツをitms-appssから表示することはできません://itunes.apple.com/app/appname/id######?mt = 8。 これは、ULメカニズムが機能せず、ブラウザが実際にURLを取得したことを意味します(これは、iTunesにリダイレクトするLocationヘッダーを送信する単純なPHPファイルです)。
私たちのアプリまたはページまたはサブドメインのように、私はInstagramアプリケーションのための同様のリンクを追加しようとしました。これは動作が同じであるために役立ちませんでした:ULメカニズムが機能せず、ブラウザがULのコンテンツを取得しました。
擬似HTML:
<body>
<a href="universal_link">Works</a>
<iframe src="your_random_local_page.html">
<a href="universal_link">Doesn't work</a>
</iframe>
</body>
アレックス、ありがとうございます。あまり詳しく説明せずにこれをもっと明確にしようとしましょう。 Universal Linkは基本的にapple-app-site-associationファイルに登録されているPHPファイルを指しています。したがって、このリンクがトップウィンドウまたはNotesアプリからクリックされると、ネイティブアプリが起動されます。 Phpファイルは、ユーザーがアプリをインストールできるように、iTunesにリダイレクトするLocationヘッダーを返すだけです。 iTunesについてのログを取得した場合、ULメカニズムがiframe内で動作していないようです – Denis
それは私を驚かせません。 iframeが予期せずに別のアプリを起動することができた場合、ユーザーは非常に驚くべきものになります。 Appleはユニバーサルリンクについて何らかのユーザアクションを必要とすることについてかなり控えめなので、これはおそらく制限のように思える。 –