Android 是否可以实现从网站到本机应用程序的深度链接?
我的网站上有三个按钮,分别链接到Facebook、Twitter和vk.com页面。我想打开本机应用程序,如果它安装在用户设备上。否则,我希望URL回退被打开 首先,我尝试直接使用本地应用程序方案和插件。但是,当我试图打开本机应用程序URL方案时,当本机应用程序未安装时,Safari显示了一个错误,但最终打开了URL回退页面。默认Android浏览器表示,他不知道如何处理此类URL方案:Android 是否可以实现从网站到本机应用程序的深度链接?,android,ios,facebook,deep-linking,applinks,Android,Ios,Facebook,Deep Linking,Applinks,我的网站上有三个按钮,分别链接到Facebook、Twitter和vk.com页面。我想打开本机应用程序,如果它安装在用户设备上。否则,我希望URL回退被打开 首先,我尝试直接使用本地应用程序方案和插件。但是,当我试图打开本机应用程序URL方案时,当本机应用程序未安装时,Safari显示了一个错误,但最终打开了URL回退页面。默认Android浏览器表示,他不知道如何处理此类URL方案: 是的!请看一下本培训: 这是你需要的信息吗?lmk这仍然是可能的,但在Android默认浏览器的较新版本
是的!请看一下本培训:
这是你需要的信息吗?lmk这仍然是可能的,但在Android默认浏览器的较新版本上,您必须使用intents,而不仅仅是尝试打开深层链接。例如,将您的
fb://page/838619192839881
替换为
intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;end
默认情况下,这将回退到Google play,但您可以通过添加S.browser\u fallback\u url来覆盖回退:
intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;S.browser_fallback_url=http%3A%2F%2Fwww.facebook.com%2F;end
回退应该是url编码的
当然,如果用户不在Android手机上或使用旧版本的默认浏览器(或奇怪的浏览器),您将遇到问题。您可以设置一系列条件,并为每种情况使用正确的代码替换HTML
我致力于此,这是一种免费、简单、容易的方式,让所有东西都能在Android和iPhone上运行,我们已经做了所有这些肮脏的工作。你可以用它,或者直接给我们写信,我们会帮你的 接受的答案只适用于Chrome v28和Android 5.0的默认浏览器。如果你想在Facebook/Twitter网络视图、Firefox、UC和比5.0更老的默认浏览器上使用它,你需要使用一些稍微复杂一点的代码
将此函数添加到JS代码段:
var openSesame = function() {
var method = 'iframe';
var fallbackFunction = function() {
if (method == 'iframe') {
window.location = "market://details?id=com.facebook.katana";
}
};
var addIFrame = function() {
var iframe = document.createElement("iframe");
iframe.style.border = "none";
iframe.style.width = "1px";
iframe.style.height = "1px";
iframe.src = "fb://page/838619192839881";
document.body.appendChild(iframe);
};
var loadChromeIntent = function() {
method = 'intent';
document.location = "intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;end";
};
if (navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match("Version/")) {
loadChromeIntent();
}
else if (navigator.userAgent.match(/Firefox/)) {
window.location = "fb://page/838619192839881";
}
else {
addIFrame();
}
setTimeout(fallbackFunction, 750);
};
然后您的按钮将如下所示:
<a href="" onclick="openSesame();">Open the App</a>
或者,您也可以使用这样的服务,它会自动完成您想要的功能。谢谢您的回复。本文档介绍如何配置应用程序清单。我正在寻找的方式,如何调用从通常的网页深度链接。问题是你不能只使用native://url,因为在默认的移动操作系统浏览器中,这会导致错误。哦,好的,对不起。。。我以为这是一个Android主题,直到我在openSesame()后面加了一个returnfalse
,它才起作用在onclick中选择code>。另一种方法是从openSesame
函数返回false
,并将return openSesame()
放在onclick中。现在它工作了,谢谢!