6

ウェブサイトhttps://www.example.comがあり 、次のインテント フィルターを使用して Android アプリでhttps://www.example.com/product をリッスンしているとします。

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:host="www.example.com"
        android:pathPrefix="/product"
        android:scheme="https" />
</intent-filter>

また、ファイル assetlinks.json も example.com でホストされています。

Android アプリのリンクは正常に機能しています。

ここで、ユーザーがブラウザに移動して example.com を開き、ユーザーがhttps://example.com/productをクリックすると、アプリで開かれますが、ユーザーが Web サイトにいる場合にのみアプリが開かないようにする必要があります。

どんな助けでも大歓迎です。

4

3 に答える 3

0

Web 開発者はあなたにチーズを言ったかもしれないと思います...それはすべて URL に関するものであり、コンテンツに関するものではないからです。Chrome で長押ししてから「新しいタブで開く」は、新しい URL をインテント フィルターに渡さずに機能します...そして、Chrome から URL を読み取ることができないため、そのアプローチを捨てることができます。

インテント フィルターを追加して作成した問題を回避するためにできることは、2 つのサブドメインをセットアップし、それらの 1 つだけをフィルター処理することです。 HTML の meta タグ) - 通常どおりページを使用するだけで、インテント フィルターは何もトリガーされません。

インテント フィルターを介してアプリを開くことができるようにするには、インテント フィルターが一致する他の 1 つのサブドメインにリンクするボタンを追加するだけです。他のアプローチは、非論理的であるか、問題がある可能性があります。

于 2019-11-15T07:14:42.687 に答える
0

よく調べた後、アプリの代わりにウェブを開くことができた唯一の回避策は、ウェブからのリダイレクトです->アプリ(リダイレクトロジック)->ウェブサイト。

重要なことは、ページが React または Angular で開発され、 JSP に基づいていない場合、アプリが呼び出されないことに気付きました。私たちの場合、Tomcatサーバーを使用していたので、ユーザーが別のページに移動するたびに、Androidシステムはブラウザで新しいページが開かれたことを認識し、インテントで指定されたURLをリッスンするとAndroidシステムがAndroidアプリを開きますフィルター。ただし、ページが React および Angular で設計されている場合、これは発生しません。

さて、私は Web 開発者ではないため、これを説明するのは非常に困難です。これは、Web 開発者が語ったことであり、JSP ページと React ページの両方で経験したことです。

于 2019-10-16T07:21:55.603 に答える