[英]Android deep link using intent not opening app
我正在嘗試打開我從移動 chrome 瀏覽器制作的應用程序。
https://developer.chrome.com/multidevice/android/intents
從這個鏈接,我認為我必須使用“intent:”語法來完成這項工作。
但是,我的應用程序打不開。 相反,它會打開 Google Play 商店,但商店只顯示“找不到項目”頁面。
我很想知道我是否做錯了什么。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myscheme" android:host="myhost" android:path="/"/>
</intent-filter>
這是我寫的意圖過濾器。
var androidIntentUrl = 'intent://myhost/#Intent;scheme=myscheme;package=my.test.app.package;end';
if(!isIOS && isChromeAndBiggerThanVer25()) {
location.href = androidIntentUrl;
}
這是我在網上寫的。
該應用程序必須在 Play 商店上發布才能實現嗎?
我還不太明白整個事情。
我想知道出了什么問題。
PS)名稱“myscheme”和“myhost”只是我為寫這個問題而編造的名稱。 我的代碼中的實際名稱與我的項目設置中編寫的名稱相匹配,包括包名稱。
正如 Alexey 在我的帖子中評論的那樣,
<a href="myscheme://myhost/some/other/parameters">
對我來說工作得很好。
我仔細檢查了官方文檔(我帖子上的鏈接)和我的 chrome 版本(71),所以我不知道為什么 intent:// 語法不起作用。
我想在第 25 版之后移動版 Chrome 上有一些我錯過或找不到的更改。
我剛剛遇到了與 Intents 鏈接不起作用但直接方案鏈接起作用的相同問題。 但是,我不想使用直接版本將回退重定向到 PlayStore。
解決方案是 Intent 鏈接中的包參數不必與 AndroidManifest.xml 中給定的包相匹配。 我正在處理一個 Unity 項目,必須使用項目設置中給出的包名稱。
tl;dr:這在 Chrome (v78) 中仍然有效,但 package 參數不一定是清單中給出的包。
package
參數應與您的應用程序 ID 匹配(在build.gradle
或您的AndroidManifest.xml
中找到)
上面的示例代碼將包顯示為my.test.app.package
,如果這不是您的應用程序包名稱或未安裝該應用程序,則 Intent 將默認到 Google Play 商店進行搜索。 同樣,最好將host
和scheme
參數更改為您的應用自定義的內容(如果您還沒有的話)。
我的答案是使用深度鏈接從 Web 應用程序打開 Android 應用程序:
Flipkart - <a href="flipkart://app"> Open Flipkart! </a>
WhatsApp - <a href="whatsapp://app"> Open WhatsApp! </a>
Clash Royale - <a href="clashroyale://app"> Open Clash Royale! </a>
FaceBook - <a href="fb://app"> Open FaceBook! </a>
如果列出的應用程序安裝在您的手機中,則只有它會打開,否則您必須單獨處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.