【发布时间】:2016-03-20 11:59:15
【问题描述】:
我能找到的最接近的是这个问题here。但它并没有完全涵盖我遇到的问题。
我的应用设置中有深层链接以使用 /app 作为路径前缀。我遇到的问题是http://example.com/upgrade 之类的链接也试图在我的应用程序中打开,即使它在 URL 中的任何位置都没有 /app。我知道您不能排除前缀指定的网址,但路径前缀的全部意义不在于仅包含这些网址吗?
基本上我希望像这样的链接到深层链接:
http://example.com/app/home
http://example.com/app/specials
但不是这样的链接:
http://exaple.com/
http://example.com/login
这是我的清单中的内容:
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/app"/>
编辑 1
也找到了this link,但我没有任何空前缀,只有斜杠“/”的前缀
编辑 2
触发它的 url 是 http://example.com/upgrade.php?app=1&method=1&uid=1,我不确定 app 在 ?也会触发它,所以我将前缀更改为 /application 但这也不起作用,它仍然会触发它们。
编辑 3
这是清单中的其他深层链接数据标签:
个人资料活动
<data android:scheme="myapp"
android:host="profile"
android:pathPrefix="/"/>
登录/注册活动
<data android:scheme="myapp"
android:host="login"
android:pathPrefix="/signup"/>
主要活动
<data android:scheme="myapp"
android:host="main"
android:pathPrefix="/"/>
<data android:scheme="http"
android:host="test.example.com"
android:pathPrefix="/app"/>
<data android:scheme="http"
android:host="live.example.com"
android:pathPrefix="/app"/>
编辑 4
这变得越来越令人困惑,如果我从活动中删除带有 myapp 作为方案的数据标签(或者如果我从前缀为“/”的所有内容中删除 pathPrefix)它不再触发深层链接网址,即使其中包含 /app。
【问题讨论】:
-
这是您清单中唯一的
<data>标记吗? -
该活动有 3 个,另外两个活动各有一个。
-
这是唯一一个使用 example.com 的,其他使用我的应用程序名称作为方案,其中一些使用“/”作为前缀,但所有使用 http 方案的都有“/app”的定义前缀
-
尝试使用“android:pathPattern="/app*"
-
刚刚尝试了 pathPattern="/application*" 并且它也不起作用,即使它根本不包含“应用程序”,链接仍然会触发它。我会将每个数据标签添加到问题中,以防缺少其他内容。
标签: android deep-linking