2017-06-16 89 views
3

我一直在嘗試過去幾個小時的意圖過濾器,我對Google教程代碼爲什麼很困惑對於Handling App Links via Intent Filters不支持我的物理三星S8設備的默認三星瀏覽器或Firefox上安裝的,但從谷歌瀏覽器應用程序工作。從三星瀏覽器/火狐瀏覽器/ Firefox等工作但在Chrome中工作的鏈接打開應用程序的意圖過濾器

該代碼也適用於默認Android Studio Nexus 5的模擬器默認瀏覽器應用以及Google Chrome。

下面是相關的代碼我在裸機應用程序的AndroidManifest.xml我試圖來診斷問題:

<intent-filter"> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="http" /> 
    <data android:scheme="https" /> 
    <data android:host="www.android.com" /> 
</intent-filter> 

什麼我正在測試:

我點擊谷歌搜索結果頁面上https://www.android.com的鏈接。

我希望看到一個帶有我的測試應用程序名稱的對話框,但它不顯示當我從除了谷歌Chrome瀏覽器(以及Nexus 5模擬器默認瀏覽器)之外的任何設備嘗試此操作時,它只是自動顯示網頁沒有彈出對話框。

N.B.我曾嘗試也嘗試下面的事情至今不得要領:

  • 改變第一線<intent-filter android:autoVerify="true">
  • 添加行<data android:host="www.android.com/" />的情況下,這個問題有什麼在年底做的/ URL。
  • 清除這兩個瀏覽器數據/存儲&通常會重置它。

有誰知道這是爲什麼發生/如何解決這個問題?

+0

當您單擊該設備上的鏈接會發生什麼?彈出窗口出現了嗎?如果沒有,那麼您已經爲該意圖類型定義了一個默認應用程序,因此在清除該對話框之前該對話框將不會出現。 –

+0

彈出窗口出現在chrome中?也是Firefox,但不是三星瀏覽器。 – shash678

+0

要使autoVerify正常工作,必須將.well-known/assetlinks.json文件放入域的根目錄。我不認爲你自己的android.com。你爲什麼不嘗試使用自己的域名?按照教程。 *** /// ***另外一點是,也許android.com可以免受試圖接管的潛在惡意應用程序的影響。使用你自己的域名。 –

回答

4

瀏覽器本身需要支持並實現瀏覽功能。瀏覽器在打開網頁時必須找到支持android.intent.category.BROWSABLE的其他活動。

Firefox爲用戶實現了一種侵入性較小的體驗。當打開一個與應用程序有深層鏈接的url時,url欄會顯示一個帶有一點Android頭的頁面動作。點擊這個鏈接將打開除瀏覽器以外的Android活動的鏈接。

您觀察到的Android瀏覽器和Chrome的行爲,並提出您的期望。所以沒有什麼補充到這一點。

我不確定我是否可以完全談論三星瀏覽器,因爲我在我的設備上的版本可能有些過時;但我根本無法完成這些工作。

android:autoVerify屬性僅使安裝時應用程序成爲默認值。android:host="www.android.com/"只是錯誤的,因爲/是路徑而不是主機的一部分。

-1

打開某些鏈接的應用程序只能

<intent-filter> 
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category> 
    <data android:scheme="spuul"></data> 
</intent-filter> 

有了這個,所有的URI一樣spuul://電影/ 123將被應用雙頭呆。該應用程序可以處理這個URI並啓動正確的內容。與Google Play的鏈接,如market:// details?id = com.spuul.android。

後備推向市場,如果應用程序沒有安裝

<intent-filter> 
<action android:name="android.intent.action.VIEW"></action> 
<category android:name="android.intent.category.DEFAULT"></category> 
<category android:name="android.intent.category.BROWSABLE"></category> 
<data android:scheme="http" android:host="android.app.spuul.com" android:pathPrefix=""></data> 
</intent-filter> 
+0

這個合法的不能在三星Broswer上工作...你嘗試過嗎? – shash678

相關問題