NFC实现的即时应用程序

16

我想通过 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打开AARhttps://developer.android.com/guide/topics/connectivity/nfc/nfc.html#aar),这将导致在未安装应用程序时打开Play商店链接,并且在已安装应用程序时从nfc中正确打开应用程序。 如果我在nfc上放置其他内容以显示二义性选项,则可以选择浏览器选项中的即时应用程序,但我想让它默认为即时应用程序。

有什么我错过的东西可以使nfc标签加载即时应用程序吗? 我还尝试使用branch,但没有成功。


1
谢谢提供的链接,不幸的是它并没有太大帮助。答案建议“如果你想在敲击 NFC 标签时触发你的即时应用程序,那么如果你将一个即时应用程序启用的 URL 与标签绑定,这应该可以工作。”这就是我目前设置的方式,只是 NFC 打开浏览器而不是即时应用程序。 - Ryan C
1
谢谢Pragati。这帮助我缩小了范围,在我的测试设备上(一个运行O的像素),非URL格式的NFC意图可以正常打开应用程序。URL格式的NFC意图(例如https://example-refresh.herokuapp.com)会在没有歧义对话框的情况下打开Chrome。当我禁用Chrome时,相同的URL格式意图打开了我的应用程序。这让我想到,Chrome正在劫持看起来像浏览器的NFC意图,以一种不会在某些设备上触发即时应用程序的方式。你有你的设备链接吗?我能把它放在NFC上看看是否是我的设备吗? - Ryan C
你可以尝试使用https://www.buzzfeed.com/nifty进行测试。这个链接为我打开了一个AIA,可以伪造nfc标签。 - TWL
实际上,我已经尝试过buzzfeed.com/tasty,但在模拟的NFC(打开网页)上没有成功。我认为这可能是因为他们不处理NFC,但如果它对你有效,那就让我想到我的设备有一些特殊问题。我会在其他设备上尝试并看看会发生什么。感谢您的帮助。 - Ryan C
2
重现了相同的问题,会给你的链接点赞! - Evan
显示剩余10条评论
1个回答

1
即时应用程序有非常有限的允许权限集,NFC不在其中。因此,任何与NFC相关的意图都将无法工作。此外,您在清单上定义的任何内容只有在安装您的应用程序时才有效。这显然不适用于即时应用程序。谷歌确实会在您将APK上传到Play商店时索引android.intent.action.VIEW意图,以便使即时应用程序正常工作。

所以当您扫描NFC时,它是一个android.nfc.action.NDEF_DISCOVERED意图,因此您的应用程序不会被启动

但是,您仍然可以使其工作。您应该将指向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以获取有关快速应用链接的更多信息。


NFC意图是否能够进入启动的即时应用程序,以便读取和写入NFC标签,还是仅可用于启动即时应用程序? - cybergen
1
如果NFC需要同时在iOS和Android上工作,该怎么办? - ProjectDelta
1
@cybergen 它被发送到Play Store应用程序,该应用程序将启动即时应用程序。 - André Oriani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接