【问题标题】:Android NFC tag with URL opening browser, not my app带有 URL 打开浏览器的 Android NFC 标签,而不是我的应用
【发布时间】:2017-05-31 10:18:00
【问题描述】:

我按照说明设置 NFC 以在 Android 上启动我的应用。标签中的第一条记录是我网站的网址。前任。例子.com

AndroidManifest.xml 文件具有以下意图过滤器:

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <data android:host="example.com" android:scheme="http" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

但无论出于何种原因,当我扫描标签时,Android 浏览器会打开,而不是我的应用程序。 nfc 的 Android 文档似乎没有任何额外的步骤 https://developer.android.com/guide/topics/connectivity/nfc/nfc.html

不管怎样,我正在使用 Apache Cordova 和 phonegap-nfc 插件。

【问题讨论】:

    标签: android cordova nfc


    【解决方案1】:

    您的意图过滤器看起来不错,并且可以运行我编写的示例应用程序。系统提示我使用我的应用或 Chrome 打开标签。

    我希望您曾经告诉 Chrome 打开 http://example.com 标记或所有 URL 标记,现在 Chrome 会在您的应用启动之前获取意图。

    如果通过重置所有应用偏好来解决此问题。 设置 -> 设备 -> 应用程序 -> 菜单 -> “重置应用程序首选项” 见https://support.google.com/nexus/answer/6271667?hl=en

    重置首选项后,当我扫描标签时,Android 再次提示我选择一个应用程序。我总是选择使用 NFCLaunch(我的应用程序)完成操作。现在带有http://example.com 的标签会打开我的应用,但带有http://android.com 的其他标签仍会在Chrome 中打开。

    另一个选项是:禁用 Chrome,扫描标签,选择应用程序,重新启用 Chrome。

    【讨论】:

    • 我尝试重置应用引用,但 url 仍然在 Chrome 中打开。当我禁用 Chrome 时,操作系统允许我选择要启动的应用程序,但即使我单击始终打开我的应用程序,只要我启用 Chrome,它就会打开网址而不是我的应用程序。据我测试,这个问题只存在于奥利奥之前。运行 Oreo 的设备允许用户选择如何打开 url。知道如何解决吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多