【问题标题】:Universal link always opens app regardless of Apple App Site Associations通用链接始终打开应用程序,无论 Apple 应用程序站点关联如何
【发布时间】:2019-10-08 16:50:46
【问题描述】:

我们已经按照here 的描述实施了通用链接,以便用户可以确认他们的帐户。我们最近向我们的网站引入了一些新的控制器/页面,我们发现无论 apple-app-site-association 文件中有什么内容,所有链接都会打开应用程序。我检查了我们的配置,没有发现问题。

在添加新页面之前:

{
   "applinks": {
     "apps": [],
     "details": [
       {
         "appID": "XXXXXXXX.com.mybundle.identifier",
         "paths": ["*"]
       }
     ]
   }
}

添加新页面后:

{
   "applinks": {
     "apps": [],
     "details": [
       {
         "appID": "XXXXXXXX.com.mybundle.identifier",
         "paths": ["NOT /about/*", "NOT /home/*", "*"]
       }
     ]
   }
}

注意事项:

  • 我尝试了几种路径变体,包括“NOT /about*”或“NOT *”,所有链接仍会打开应用程序。
  • AASA Validator 全部返回绿色。
  • 我已在每次测试之间进行版本控制和卸载。

对我们接下来可以检查的内容有什么想法吗?

【问题讨论】:

  • 你试过我的解决方案了吗?
  • @JackHua-MSFT 我应该澄清一下,第二条路径只是一个随机测试,看看它是否仍会打开应用程序并且确实如此。当我在任何路径之前都有路径“NOT /events/*”并且用户单击链接servername/events/some-event 时,应用程序将打开。
  • 好吧,您的项目中的一切看起来都很好,但路径不起作用。您可以尝试创建一个新的 apple-app-site-association 文件而不是更改旧文件吗?

标签: ios xamarin.ios


【解决方案1】:

document about allowing_apps_and_websites_to_link_to_your_content 的最后一部分,它说:

在路径数组中的路径字符串中使用通配符来指定 您网站的各个部分。例如,将 * 附加到特定 URL, 例如 /videos/samples/2015/,指定下面的所有路径 /视频/样本/2015/。利用 ?匹配任何单个字符,例如 /photography//samples/201?/mypage.使用独立的 * 来指定您的 整个网站。

还有

通过添加“NOT”标识不应处理的区域 (包括 T 后的空格)到路径字符串的开头。

所以,在你第二个paths 中,你同时使用NOT*,这是矛盾的。我认为您应该将其更改为:

 "paths": ["NOT /about/*", "NOT /home/*"]

或者类似的东西

 "paths": ["NOT /about/*", "NOT /home/*", "/vailddomain/*"]

我没有测试它,但我认为它可能是正确的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    相关资源
    最近更新 更多