android - 我可以使用字符串资源在 Jetpack Navigation XML 文件中生成深层链接吗?

标签 android android-jetpack-navigation

假设我有以下 buildType我的 Gradle 文件中的部分:

buildTypes {
    debug {
        ...
        resValue "string", "DEEPLINK_EXAMPLE", "appnamedebug://detail/{detail_id}"
        ...
    }
    release {
        ...
        resValue "string", "DEEPLINK_EXAMPLE", "appname://detail/{detail_id}"
        ...
    }
  }
我想在我的 Jetpack Navigation XML 文件中使用生成的字符串资源作为深层链接,如下所示:
<deepLink app:uri="@string/DEEPLINK_EXAMPLE" />
我已经尝试过类似的方法,但是当我查看来自 ./adb shell dumpsys package r 的输出文件时, Intent 过滤器没有出现。 .
这甚至可能吗?如果是的话,我错过了什么吗?

最佳答案

问题中的该方法只会导致 list 具有以下 Intent 过滤器:

<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="http" />
    <data android:scheme="https" />
    <data android:host="string" />
    <data android:path="/DEEPLINK_EXAMPLE" />
</intent-filter>
我想那是一个白日梦。
好吧,最后我不得不求助于以前的方法:将导航图复制到调试和发布源集,并在那里相应地设置深度链接 URI。
所以 debug 中的导航图源集会有这个:<deepLink app:uri="appnamedebug://detail/{detail_id}" />release 中的导航图源集会有这个:<deepLink app:uri="appname://detail/{detail_id}" />我实际上不确定是否将导航图保留在 main 中。源代码,或将其删除,以便 debug 中的那些/release源集具有优先权。

关于android - 我可以使用字符串资源在 Jetpack Navigation XML 文件中生成深层链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63558071/

相关文章:

android - FragmentTabHost - 选项卡在第一次查看之前不可寻址

android - 即使在使用导航 2.2.1 后仍然有错误 no current navigation node

android - 如果应用程序关闭,深层链接不会正确重定向

android - 在某些 fragment 中隐藏抽屉导航

android - Guava库重复录入错误

android - 在 android 5.0 以下更改 alertDialog 的标题颜色

android - 在jetpack撰写导航中导航时分页3列表自动刷新

android - 底部导航栏的导航组件不起作用

android - 使用 CameraX 启动和停止相机的正确方法是什么?

android - 如何完全关闭蓝牙配对请求对话框?