尝试深层链接并打开我的应用时遇到问题。我有以下代码,这是我确定是否有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>
答案 0 :(得分:0)
我认为您应该使用本文所述的“intent:”
语法。
https://developer.chrome.com/multidevice/android/intents
基于意图的URI的基本语法如下:
intent:
HOST/URI-path // Optional host
#Intent;
package=[string];
action=[string];
category=[string];
component=[string];
scheme=[string];
end;
答案 1 :(得分:0)
我认为您需要更改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>