假设我有以下 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/