【发布时间】: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