当前位置: 首页 > 知识库问答 >
问题:

Android深层链接省略某些网址

向锦
2023-03-14

我已经成功实现了应用程序的深度链接,但我遇到了一个问题。

<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:host="*.example.com"
       android:scheme="https"/>
</intent-filter>

这个意图过滤器处理所有链接,但我不想捕捉某个url,即。

https://www.example.com/hello/redirect/

到目前为止我试过:

我试着输入我想要手动捕获的所有URL

<data
   android:host="*example.com"
   android:scheme="https"
   android:pathPrefix="/m/">
<data
   android:host="*example.com"
   android:scheme="https"
   android:pathPrefix="/c/">
<data
   android:host="*example.com"
   android:scheme="https"
   android:pathPrefix="/p/">
...

但是我的主页URLhttps://www.example.com不起作用。

如果我使用

android:pathPrefix="/"

然后,它将再次捕获所有url,包括我想忽略的url。

我也尝试过使用android:pathPattern,但它无法理解像这样复杂的正则表达式*$ 当我在字符串中尝试时效果很好。

有人知道如何省略某些网址吗?

更新:

根据@PLNech的建议,我添加了所有需要捕获的URL,使用android:pathPrefix,并使用android:path:“/”捕获我主页的URL,即。https://www.example.com/

 <data
   android:host="*.example.com"
   android:scheme="https"
   android:path="/"/>
 <data
  android:host="*example.com"
  android:scheme="https"
  android:pathPrefix="/m/">
 <data
  android:host="*example.com"
  android:scheme="https"
  android:pathPrefix="/c/">
 <data
  android:host="*example.com"
  android:scheme="https"
  android:pathPrefix="/p/">

共有2个答案

丰博
2023-03-14

如果我正确理解您的问题,您希望从特定URL列表中排除特定URL。你尝试的是一个很好的方法。

Android:路径模式不理解你说的复杂的正则表达式模式。

我认为解决问题的唯一方法是改变你想省略的URL。更改主机或该URL的一部分,或更改名称示例。comto,比方说,example2。com/hello/redirect/

王俊哲
2023-03-14

Android深度链接机制不提供明确排除某些URL的方法:您可以使用Android:path明确包含路径,将前缀与Android:pathPrefix匹配,或者将通配符与Android:pathPattern匹配,您可以使用**

在你的情况下,你必须使用“/”,并用你的应用程序(包括你的主页)打开你网站的每个链接,或者让每个深度链接共享一个共同的前缀。

你也可以看看airbnb的DeepLinkDispatch库,它似乎允许排除特定的URL。

 类似资料:
  • 项目中经常会生成一些Git系统不需要追踪(track)的文件。典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件。当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中。 但是这样会很快变成一件烦人的事,你发现 项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时

  • 我启用了深度链接,还创建了文件夹。 当点击一个URL应用程序打开相关的内容。 我的应用程序中有一个按钮,可以在网络浏览器中打开内容。但是,再次打开链接时,会再次打开应用程序。 我看到我可以尝试设置软件包的目的是,但这不是一个干净的解决方案,因为一些Android用户可能会使用其他浏览器。 我怎样才能正确地做到这一点?

  • 我正在实现Android深度链接的概念,它工作正常,我的问题是,如果应用程序没有安装在手机上,我想将链接重定向到我的play store应用程序页面。 请引导我找到它,谢谢。

  • 问题内容: 在某些脚本中,我看到他们省略了为脚本编写结束标记的过程。为什么会这样,我也应该这样做吗? (我确定他们没有忘记它。) 问题答案: 好吧,省略结束标记只是避免在文件末尾出现空格和其他字符的一种解决方案。例如,在稍后尝试修改标头信息时,意外在结束标记后面添加的任何字符都会触发错误。 参照许多编码准则,删除结束标记是一种“好的做法”。

  • 我使用本机代码进行upi深度链接。当我点击手机浏览器中的url时,bhim应用程序支付详情页面中的意图调用未显示,而其他psp应用程序重定向到支付页面upi://pay?pa=98955012345@upi 然而,当我使用我的商户应用程序,通过意向深度链接链接时,它会打开BHIM,但不会重定向到预填充页面。

  • 在大多数系统上,我的JLabel中的内容显示得很好。它的驻留方式也应该总是足够大,以显示其内容文本,因为我基本上是这样做的: 但在一些系统上(不是我自己的系统,所以我不能那么容易调试),它会剪切文本并显示“…”最后。 您可以在这里看到完整的代码,也可以在这里看到示例(Abbildungen_Bijektiv_X3)。 我对朱布顿也有类似的看法。 我怎么能强迫Swing不这么做?(即使它认为组件太小