我遇到了尝试深层链接并让我的应用程序打开的问题。我有以下代码,这是我确定我是否有一个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>