问题描述
“永远”开发我的第二个 Android 应用程序时,我遇到了一个意想不到的问题。 我的应用程序需要处理所谓的深层链接,因此我在清单文件中添加了以下内容:
<activity
...
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="app"
android:host="appname.mydomain.nl" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="appname.mydomain.nl" />
appname
是我的应用程序名称,mydomain.nl
是我拥有的网站。我使用创建(并测试)的 .well-known/assetlinks.json 文件使其在多款平板电脑和手机(Android 10 或更高版本)上运行。
有一部手机,摩托罗拉 One Macro (XT2016-1),Android 9,但无法正常工作:
https://appname.mydomain.nl/whatever
的任何链接都转到 (Chrome) 浏览器。
为了解决这个问题,我使用浏览器对 URL 进行了任何访问,都会提供一个带有指向 app://appname.mydomain.nl
的超链接的网页,以便浏览器会以意图打开应用程序(假设应用程序已安装)。同样,在我尝试过的少数平板电脑和手机(Android 10 和 11)上(通过使用浏览器显式打开 URL),应用程序被打开。但同样不是在上面的摩托罗拉 One 宏上 (1)。
让用户卸载应用程序,并从全新的 DID 工作中安装它。然而,这是一个繁琐的变通方法。有没有办法强制手机真正更新Manifest文件的intent-section?(2)
(1) 我让用户更新了几次应用程序,因为我试图解决这个问题,但只有在应用程序首先被删除然后再次添加后才让它工作。当然,这可能是这台设备的某些特定错误,但我不相信就是这样。 也不确定这是否是手机特定类型的问题,或者例如Android 版本(Android 9 对处理应用程序中的深层链接的方式有一些特定的用法)。 郑重声明:我使用大多数库的兼容版本,并以 Sdk 16 或更高版本为目标。
(2) 更改意图过滤器并不是应用程序的每个新版本都会发生的事情,但我确实预见到清单的这一部分会发生变化的未来变化。如果我必须要求特定手机的用户先删除然后再次添加应用程序,那就太糟糕了。
亲切的问候,
罗尔
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)