ava*_*sin 4 android facebook deep-linking ios applinks
我的网站上有三个按钮,链接到facebook,twitter和vk.com页面.我想打开本机应用程序,如果它安装在用户设备上.否则,我想要打开url后备.
首先,我尝试使用deep-link.js插件直接使用本机应用程序方案.但是,当我尝试打开本机应用程序URL方案时,当未安装本机应用程序时,Safari显示错误,但最后打开了URL回退页面.默认的android浏览器说他不知道如何处理这样的url方案:
<a class="btn btn-primary" href="https://www.facebook.com/warpcompany" data-app-ios="fb://profile/838619192839881" data-app-android="fb://page/838619192839881">Facebook</a>Run Code Online (Sandbox Code Playgroud)
然后我尝试使用App Links"标准",这是从Facebook有这么多的促销.我甚至试图使用他们的托管应用程序链接,以确保我已经正确地生成了一切.它不起作用,它总是重定向到网站后备.您可以自己轻松测试它:https://fb.me/746134728830806
那么,是否有可能在网站上提供深层链接,这将至少在默认的os浏览器中打开本机应用程序而不会出错,或者默默地回退到url?
老实说,我试图解决这个问题几天没有工作结果/例子.也许你可以提供至少工作的例子/网站.
提前致谢.
它仍有可能,但在Android默认浏览器的较新版本中,您必须使用意图而不是仅仅尝试打开深层链接.例如取代你fb://page/838619192839881与
intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;end
Run Code Online (Sandbox Code Playgroud)
默认情况下,这将回退到Google Play,但您可以覆盖后备添加S.browser_fallback_url:
intent://page/838619192839881#Intent;scheme=fb;package=com.facebook.katana;S.browser_fallback_url=http%3A%2F%2Fwww.facebook.com%2F;end
Run Code Online (Sandbox Code Playgroud)
后备应该是url编码的.
当然,如果用户不在Android手机上或使用旧版本的默认浏览器(或奇怪的浏览器),您将遇到问题.您可以设置一系列条件,并使用每个案例的正确代码替换您的HTML.
我在HOKO上工作,这是一种免费的,简单易用的方法,可以让所有东西都在Android和iPhone上工作,我们已经完成了所有肮脏的工作.你可以宁可使用它,也可以直接告诉我们,我们会帮助你.
接受的答案仅适用于Chrome v28和Android 5.0的默认浏览器.如果你想在其他浏览器上工作,比如Facebook/Twitter webviews,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);
};
Run Code Online (Sandbox Code Playgroud)
然后你的按钮看起来像这样:
<a href="" onclick="openSesame();">Open the App</a>
Run Code Online (Sandbox Code Playgroud)
或者您可以使用像branch.io这样的服务,它可以自动完成您正在寻找的服务.
| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |