我正在创建浏览器应用程序,但当我单击任何 URL 时,Android 不会在选择器中检测到我的应用程序

Posted

技术标签:

【中文标题】我正在创建浏览器应用程序,但当我单击任何 URL 时,Android 不会在选择器中检测到我的应用程序【英文标题】:I am creating a Browser App but Android won't detect my app in chooser while I click on any URL 【发布时间】:2020-07-28 19:19:18 【问题描述】:

我正在创建一个浏览器应用程序,我希望 android 将我的应用程序视为浏览器并显示在要打开的应用程序选择器中。

我希望我的应用显示在此列表中。

这是我的清单活动代码:

<activity
        android:name=".Activity.LinkDetectorActivity"
        android:exported="true"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <data android:scheme="testscheme" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

【问题讨论】:

浏览器是什么意思? 我正在尝试创建一个类似 chrome 或 edge 的应用 “我希望 android 将我的应用程序视为浏览器”——这是什么意思? 你不需要上网权限? 每当用户通过 WhatsApp、Facebook 等应用点击链接时,Android 都会提示用户选择浏览器,我希望将我的应用添加到所有已安装浏览器的列表中。 【参考方案1】:

用下面替换你的意图过滤器,

 <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="http"/>
        <category android:name="android.intent.category.DEFAULT" />
        <!-- The BROWSABLE category is required to get links from web 
        pages. -->
        <category android:name="android.intent.category.BROWSABLE" />
 </intent-filter>

</activity>

【讨论】:

更新了答案。还请检查您点击的网址?是http还是https?如果是 https 则也添加该方案。【参考方案2】:

尝试将testcheme更改为“http”和“https”

<activity
    android:name=".Activity.LinkDetectorActivity"
    android:exported="true"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <data android:scheme="http" />
        <data android:scheme="https" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

【讨论】:

分享 2 个浏览器项目的 2 个链接,检查它们的清单,也尝试更改你的清单 github.com/scoute-dich/browser/blob/master/app/src/main/…github.com/arunkumar9t2/lynket-browser/blob/master/android-app/…

以上是关于我正在创建浏览器应用程序,但当我单击任何 URL 时,Android 不会在选择器中检测到我的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

JS异步/等待的CORS错误,但当我将URL直接粘贴到浏览器时没有[重复]

JS async/await 的 CORS 错误,但当我将 URL 直接粘贴到浏览器中时没有 [重复]

iOS IMA SDK - 关闭应用内浏览器后视频未恢复(单击了解更多后)

WWW / UnityWebRequest POST / GET请求不会从server / url返回最新数据

如何使用 wkwebview 打开 PDF 链接

当我单击媒体播放器中的列表视图时,正在播放多首歌曲