【问题标题】:Instant Apps with NFC带 NFC 的即时应用程序
【发布时间】:2017-10-26 07:50:38
【问题描述】:

我正在尝试通过 NFC 打开免安装应用。

我的 AndroidManifest.xml 中有如下内容

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="https" />
    <data android:scheme="http" />
    <data android:host="example-refresh.herokuapp.com" />
</intent-filter>

当从链接转到https://example-refresh.herokuapp.com(显然是示例链接)时,点击即时应用程序正确加载。从 nfc 标签打开该链接时,浏览器只会加载。我也试过让 nfc 打开一个 AAR (https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#aar) 这会导致在未安装应用程序时打开 Play 商店链接,并且在安装时从 nfc 正确打开应用程序。如果我在 nfc 上有其他内容,因此它显示了明确的选项,那么我可以为浏览器选项选择即时应用程序,但我希望它默认为即时应用程序。

我是否缺少获取 nfc 标签来加载即时应用程序的东西?我也尝试过使用分支,但没有运气。

【问题讨论】:

  • 如果我理解正确的话,这个链接可以帮助你stackoverflow.com/questions/44325441/…
  • 感谢您的链接,不幸的是,它并没有太大帮助。答案建议“如果您想在点击 NFC 标签时触发您的 Instant App,那么如果您将支持 Instant App 的 URL 绑定到标签,那应该可以工作。”这是我目前的设置,除了 nfc 打开浏览器而不是即时应用程序。
  • 链接答案的要点是,当点击 NFC 时,设备将尝试解析 URL,并且应该将其指向即时应用程序。不应该有消歧对话框。我通过在 N 设备上伪造 NFC URL 标签进行了测试,它使用与您相同的意图过滤器打开了我的即时应用程序(和已安装的应用程序)。 (stackoverflow.com/a/30908559/6668797)
  • 谢谢普拉加蒂。这帮助我缩小了一点,在我的测试设备(运行 O 的像素)上,非 url 格式的 NFC 意图可以很好地打开应用程序。一个 url 格式的 NFC 意图(例如example-refresh.herokuapp.com)打开了 chrome,没有消歧对话框。当我禁用 chrome 时,相同的 url 格式的意图打开了我的应用程序。这让我认为 chrome 正在劫持看起来像浏览器的 NFC 意图,其方式不会触发某些设备上的即时应用程序。您是否有指向您设备的链接,我可以通过 NFC 来查看它是否是我的设备?
  • 转载了同样的问题,会给你的链接加星标!

标签: android nfc deep-linking branch.io android-instant-apps


【解决方案1】:

免安装应用的 allowed permissions 集非常有限,而 NFC 不在该集中。因此,任何与 NFC 相关的意图都将不起作用。此外,您在清单中定义的任何内容仅在安装您的应用程序时才有效。这显然不是即时应用程序的情况。当您将 APK 上传到 Play 商店时,Google 确实会将 android.intent.action.VIEW 意图编入索引,因此它们可以使即时应用正常运行。

因此,当您扫描 NFC 时,它是 android.nfc.action.NDEF_DISCOVERED Intent,因此您的应用不会启动

但是,您仍然可以使其工作。不应使用通常用于启动免安装应用的链接,而应将 Play 商店中免安装应用的链接写入 NFC 标签。

https://play.google.com/store/apps/details?id=<package_name>&launch=true

查看https://developer.android.com/distribute/marketing-tools/linking-to-google-play#Instant

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2015-07-05
    相关资源
    最近更新 更多