我需要在用户点击网址时打开vk.com,facebook,twitter应用,以防安装此应用。
否则,应使用http url打开新标签页。
是否有一些现成的解决方案?
我需要这个在ios,android和amp; Windows设备。
答案 0 :(得分:1)
这可以使用URL方案完成。不幸的是,不同的操作系统(ios,android等)为他们的移动应用程序响应不同的URL方案。因此,首先您必须找出用户正在使用的设备。这可以通过使用navigator.userAgent属性获得:
var ua = window.navigator.userAgent;
ua 变量是表示用户信息的字符串,例如,他们正在使用哪个浏览器。因此,您可以使用String的match method来查找特定值:
var IS_IPAD = ua.match(/iPad/i) != null,
IS_IPHONE = !IS_IPAD && ((ua.match(/iPhone/i) != null) || (ua.match(/iPod/i) != null)),
IS_IOS = IS_IPAD || IS_IPHONE,
IS_ANDROID = !IS_IOS && ua.match(/android/i) != null,
IS_MOBILE = IS_IOS || IS_ANDROID;
现在您知道用户正在使用哪个设备,您可以使用正确的URL方案。 Android使用Intents和 intent:// 前缀,IOS使用格式 appname:// parameters 。所以,你可以这样做:
if(IS_IOS){
window.location = "myapp://view?id=123";
}else if(IS_ANDROID){
window.location = 'intent://view?id=123#Intent;package=my.app.id;scheme=myapp;launchFlags=268435456;end;';
}
您可能希望使用IOS超时(如果未安装应用,Android将带到Play商店)以查看应用是否已加载。如果应用程序未加载,则可以将窗口位置设置为标准URL。
这解决了Android和IOS的问题,但它不包括Windows移动设备。虽然,我确信这是一种类似的方法。我没有找到任何特定的库来抽象和处理这些代码,但它实现起来相当简单。
资源/进一步阅读: