簡體   English   中英

從Chrome內啟動自定義網址計划的Android應用?

[英]Android app with custom URL scheme launching from within Chrome?

我從Eclipse向導創建了一個基本的Android應用程序。 然后,在現有的Intent過濾器之后,將以下intent過濾器添加到AndroidManifest.xml中 這使它支持自定義的“sample://”URL方案:

<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="sample" />
</intent-filter>

如果我運行Chrome或默認瀏覽器,然后單擊“ sample://”鏈接,它將啟動我的應用程序。 但是,如果我查看任務切換器,我的應用程序未列出。 而是顯示了Chrome,並顯示了我的應用程序的屏幕截圖。

為什么是這樣? 可以修復嗎? 我在Galaxy Nexus手機上運行Android 4.2.2。

我注意到,如果將android:launchMode="singleInstance"到活動中,它將在單獨的應用程序中打開。 文檔稱這是“不推薦用於一般用途”。 為什么不?

您的Activity之所以在Chrome的“最新應用”中顯示,是因為它現在屬於Chrome任務,因為它是從那里啟動的。

正如您注意到android:launchMode="singleInstance"解決了您的問題,但不建議或不鼓勵它,因為它會android:launchMode="singleInstance"用戶體驗和導航以及用戶期望您的應用程序的行為方式。

幸運的是,我認為可以在HREF中指定Intent標志的方法,請嘗試如下操作:

<A HREF="intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.example.package/.MyActivity;end" />

在前面的示例中, launchFlags=FLAG_ACTIVITY_NEW_TASK 此標志通常由想要呈現“啟動器”樣式行為的活動使用:它們為用戶提供可以完成的單獨事物的列表,否則完全獨立於啟動它們的活動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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