从重定向而不是链接打开Android应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从重定向而不是链接打开Android应用程序相关的知识,希望对你有一定的参考价值。

我遇到了尝试深层链接并让我的应用程序打开的问题。我有以下代码,这是我确定我是否有一个ios用户或android的方法。如果它是android,那么我想重定向用户打开他们的应用程序,如果安装。

问题是重定向到company://open.me/没有打开应用程序

如果我创建一个像手动链接

<a href="company://open.me/">Open Me</a>

这工作正常,打开我的应用程序。

有帮助吗?

<script>
if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
    location.replace("company://");
    setTimeout(function() {
        if (!document.webkitHidden) {
            location.replace("https://www.company.com");
        }
    }, 25);
} else if ((navigator.userAgent.match(/android/i)) || (navigator.userAgent.match(/Android/i))) {
    window.location = "company://open.me/";
} else {
    location.replace("https://www.company.com");
}
</script>

表现

<intent-filter>
    <data android:scheme="company" android:host="open.me" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
答案

我认为你应该使用本文中描述的“intent:”语法。 https://developer.chrome.com/multidevice/android/intents

基于intent的URI的基本语法如下:

intent:
   HOST/URI-path // Optional host 
   #Intent; 
      package=[string]; 
      action=[string]; 
      category=[string]; 
      component=[string]; 
      scheme=[string]; 
   end; 
另一答案

我想你需要改变你调用window.location的方式。

这将有效:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <script>
function newDoc() {
  window.location.assign("company://open.me/")
}
</script>
  </head>
  <body>
    <a href="company://open.me/">deep link</a>

<input type="button" value="Load new document" onclick="newDoc()">
  </body>
</html>

以上是关于从重定向而不是链接打开Android应用程序的主要内容,如果未能解决你的问题,请参考以下文章

从重定向重写规则中排除图像文件夹

Safari Webapp强制在单击其他链接时打开Safari

使用 NSURLSessionDownloadTask 从重定向 URL 下载 pdf 文件

php – cURL从重定向获取url

致命:无法从重定向更新 url 库

从重定向角度 5 中获取查询参数