无法传递带有参数的深层链接-Android

时间:2019-06-12 14:49:33

标签: android deep-linking

我正在尝试将参数传递给Android中的深层链接,但无法正常工作。

我在hostName文件中指定了一个app/build.gradle变量来区分UAT和生产URL。像这样在hostName中引用此AndroidManifest.xml变量:

<activity
            android:name=".ui.MyActivity"
            android:theme="@style/MyTheme"
            android:configChanges="orientation"
            android:windowSoftInputMode="adjustResize">

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <!-- deep links for home page. -->
                <data
                    android:scheme="https"
                    android:host="${hostName}"
                    android:pathPrefix="/login.jsp?signup=true" />
            </intent-filter>
        </activity>

我正在尝试使用adb来测试深层链接,如下所示:
adb.exe shell am start -W -a android.intent.action.VIEW -d "https://www.mywebsite.co.in/login.jsp?signup=true" com.myapp.ui.MyActivity

我得到的错误是:

Starting: Intent { act=android.intent.action.VIEW dat=https://www.mywebsite.co.in/... pkg=com.myapp.android.alpha }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=https://www.mywebsite.co.in/... flg=0x10000000 pkg=com.myapp.android.alpha }  

我在此处已阅读了许多类似的问题,所有这些问题都建议转义特殊字符。但这在这种情况下不起作用。

任何欢迎您解决此问题的见识。

2 个答案:

答案 0 :(得分:0)

android:pathPrefix在您的AndroidManifest.xml中无效。
它应该只包含path元素,而不包含查询:

android:pathPrefix="/login.jsp"

答案 1 :(得分:0)

查询字符串?signup=true不是路径的一部分。您无法过滤查询字符串。