Android 应用链接尝试验证随机主机并失败
Posted
技术标签:
【中文标题】Android 应用链接尝试验证随机主机并失败【英文标题】:Android app link tries to verify a random host and fails 【发布时间】:2020-12-15 20:15:57 【问题描述】:我已将 applinks 添加到我的应用程序,并且已将assetlinks.json 文件上传到我的域。使用 App Link Support,点击 Link and Verify 给我以下信息:
到目前为止一切顺利。现在,当我在 Logcat 中安装应用程序并过滤 IntentFilterIntentOp 时,我将一个完全随机的主机添加到我的域列表中。主机名是string
,我收到以下错误。
java.net.MalformedURLException: 输入主机无效。
我在 android manifest 中的活动如下所示:
<activity
android:name=".mainactivity.MainActivity"
android:launchMode="singleInstance">
<nav-graph android:value="@navigation/nav_host_main" />
<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="my-url" />
</intent-filter>
</activity>
我的问题是域string
来自哪里?
IntentFilterIntentOp 的 logcat 过滤器如下所示:
Verifying IntentFilter. verificationId:89 scheme:"https" hosts:"my-url string" package:"my-package". [CONTEXT service_id=244 ]
【问题讨论】:
【参考方案1】:我发现了问题所在。 我还试图在导航组件的深层链接中包含变量。
所以我在片段中的深层链接看起来像
<fragment
...
<deepLink
android:id="@+id/deepLink6"
app:uri="@string/deeplink_setpassword_verify_email" />
</fragment>
这是 Android 将其作为字符串的地方。所以我不得不在这里写实际的 URL。
【讨论】:
以上是关于Android 应用链接尝试验证随机主机并失败的主要内容,如果未能解决你的问题,请参考以下文章
身份验证请求失败 PayPal Android SDK 示例