gpt4 book ai didi

java - 从深层链接中的 Intent 获取空值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:28 24 4
gpt4 key购买 nike

我在我的应用程序中添加了一个深层链接,该链接将 Activity 映射到我网站上的特定网页(引用链接:https://developer.android.com/training/app-links/deep-linking)。在我的 Java 代码中处理深层链接时,getAction()getData() 方法给我 null 值。我试着在这里测试它:https://firebase.google.com/docs/app-indexing/android/test (这给了我完美的结果)但是点击时相同的链接在网络浏览器中打开,而不是在我的应用程序中打开。

Android list 代码:

<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:exported="true">

<tools:validation testUrl="https://www.mywebsite.com/xyz" />
<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="www.mywebsite.com"
android:pathPrefix="/xyz" />
</intent-filter>
</activity>

Java 代码:

    Intent intent = getIntent();
String action = intent.getAction(); // getting null value here
Uri data = intent.getData(); // getting null value here

我希望如果应用程序存在,那么它应该在单击链接时打开,否则链接将打开网页。我错过了什么?

最佳答案

您可能会遇到此问题,因为使用 singleTask。在这种情况下,您应该使用 onNewIntent “更新” Intent ,因为 onCreateonResume 不会处理它。

This is called for activities that set launchMode to "singleTop" in their package, or if a client used the Intent#FLAG_ACTIVITY_SINGLE_TOP flag when calling startActivity(Intent). In either case, when the activity is re-launched while at the top of the activity stack instead of a new instance of the activity being started, onNewIntent() will be called on the existing instance with the Intent that was used to re-launch it.

override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)

//TODO: do something with new intent
}

关于java - 从深层链接中的 Intent 获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54569433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com