簡體   English   中英

Android深層鏈接使用意圖不打開應用程序

[英]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 商店進行搜索。 同樣,最好將hostscheme參數更改為您的應用自定義的內容(如果您還沒有的話)。

我的答案是使用深度鏈接從 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM