1. cordova插件

1)查看所有已安装的安卓app

https://www.npmjs.com/package/cordova-plugin-packagemanager

A simple plugin that will return a list of installed applications or all on your smartphone. Retuen uid, dataDir and packageName.

functionsuccessCallback(e) {alert(JSON.stringify(e));
}
functionerrorCallback(e) {alert('Error!' +e);
}window.plugins.packagemanager.show(true, successCallback, errorCallback);

2)检测某安卓app是否已安装

https://www.npmjs.com/package/cordova-plugin-appavailability

从1)返回的list of installed applications中找到所需app的scheme,例如高德地图:com.autonavi.minimap。

varscheme;if (device.platform === 'iOS') {scheme= 'iosamap://';
}else if (device.platform === 'Android') {scheme= 'com.autonavi.minimap';
}appAvailability.check(scheme,//URI Scheme or Package Namefunction () {  //Success callbackalert(scheme + ' is available :)');},function () {  //Error callbackalert(scheme + ' is not available :(');}
);

3)launch app

https://github.com/nchutchind/cordova-plugin-app-launcher

window.plugins.launcher.launch({ uri:'androidamap://route?sourceApplication=cortanademoservice&slat=39.979366&slon=116.31028&sname=我的位置&dlat=39.980016&dlon=116.326568&dname=公安局&dev=0&t=0'},successCallback,errorCallback);

2. JavaScript的tricky实现方法

安装app的情况下,网页会进入后台打开app,网页进入后台后会挂起js的执行,但是这个期间有600-1000ms的时间js仍然会执行,可以利用打开app的延时来判断是否有该app。

var t = 1000, hasApp = true;
setTimeout(function() {if (!hasApp) {cordova.InAppBrowser.open('http://m.amap.com/navigation/carmap/saddr=116.310322%2C39.978957%2C%E5%BE%AE%E8%BD%AF%E5%A4%A7%E5%8E%A6&daddr=116.326568%2C39.980016%2C%E4%B8%AD%E5%85%B3%E6%9D%91%E6%B4%BE%E5%87%BA%E6%89%80&saddr_lonlat=116.310322%2C39.978957%2C%E5%BE%AE%E8%BD%AF%E5%A4%A7%E5%8E%A6&daddr_lonlat=116.326568%2C39.980016%2C%E4%B8%AD%E5%85%B3%E6%9D%91%E6%B4%BE%E5%87%BA%E6%89%80&saddr_typecode=120201&daddr_typecode=130501&saddr_poiid=B0FFFSPTNE&daddr_poiid=B000A7FCSP&maddr=&sort=&addPassing=remove');}$("#ifr").remove();
},2000);var t1 =Date.now();var ifr = $('<iframe id="ifr"></iframe>')
ifr.attr('src', 'androidamap://route?sourceApplication=cortanademoservice&slat=39.979366&slon=116.31028&sname=我的位置&dlat=39.980016&dlon=116.326568&dname=公安局&dev=0&t=0');
$('body').append(ifr);
setTimeout(function() {var t2 =Date.now();//delay time 30 may vary for different type of phonesif (!t1 || t2 - t1 < t + 30) {hasApp= false;}
}, t);

利用iframe的动态加载来尝试打开app。

转载于:https://www.cnblogs.com/argenbarbie/p/7808340.html

webapp检测安卓app是否安装并launch相关推荐

  1. iOS应用中检测第三方app是否安装及跳转解决方案

    最近在做支付宝支付,需要验证客户端是否安装支付宝钱包App,可通过Url Scheme框架实现. 参考文档 :http://www.jianshu.com/p/28f517775214 1. 以支付宝 ...

  2. 基于vue.js的uni app跨平台框架webapp、安卓app、苹果app、微信小程序 毕业设计 毕设作品 开题报告论文参考(2)预约订座APP系统

    效果图

  3. win10/11如何安装安卓app?带你使用华为移动应用引擎

    win11喜提安卓app,可是目前的版本还无法安装.但是如果你是华为的粉丝,你肯定知道,前段时间华为发布了一款⌈移动应用引擎⌋,这个⌈引擎⌋领先于win11实现了对移动 App 的支持,而且还支持wi ...

  4. android各版本安装方法,【2017/1/6】安卓老版安装方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 安装方式文档中写了简版,要是看不懂可以在细按以下步骤安装.以下均为安卓版,IOS请移步他处.[]括号内容请详细阅读清楚后在进行操作,另外请不要更新,不要更 ...

  5. 安卓APP:隐私合规检测常见问题建议总结

    1.1 违规收集个人信息 1).APP隐私政策必须非常清楚.全面地说明(不要用可能收集.了解用户信息这种模糊不清晰的词语)收集用户个人信息的目的.方式和范围,用户个人信息包括但不限于mac地址.设备序 ...

  6. JS检测是手机否安装App并打开,否则跳转App Store的方法

    常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码.但往往我们都是直接给推广图片加了一个下载链接(App Store中的).所以咱们来模拟一下用 ...

  7. win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!

    [PConline 资讯]不久前有人从泄漏的Windows 10手机版build 10240中,解包出了微软内置的可以让Windows 10手机版兼容安卓App的模块,详情可以点此查看.不过,Wind ...

  8. win11正式版如何安装安卓app windows11正式版安装安卓app的步骤方法

    以前如果想要在Windows系统电脑上运行安卓应用的话,需要先下载安卓模拟器,不过现在不用这么麻烦了,在Win11的发布会上,宣布了可以在windows11系统中安装使用APP,所以下面我们来看看wi ...

  9. win11怎么安装安卓app win11上安装安卓app的步骤教程

    微软win11最为亮眼的就是windows系统终于可以兼容原生安卓app了,但是很多安装了win11的朋友发现安装不了安卓app,今天小编来跟大家说说win11安装安卓app的步骤教程吧,更多win1 ...

最新文章

  1. leetcode-102 二叉树的层次遍历
  2. 融合应用11.1.8安装,一步一步的引导
  3. 【数论】数论基础合集
  4. 图灵2月书讯:书籍,不可分离的生命伴侣
  5. a few ideas for cambridge career
  6. 【LeetCode】104. Maximum Depth of Binary Tree (2 solutions)
  7. python gui界面 tcp_通过python实现TCP编程
  8. 每日一笑 | 程序员的招租公告
  9. TreeView 小技巧
  10. .NET根本权限管理框架源代码
  11. 英文课程名称 c语言程序设计,课程名称C语言程序设计I.doc
  12. sql 语句循环方法的使用
  13. 必须精力充沛,才扛得住世事艰难
  14. JavaScript 根据身份证号获取年龄
  15. IP地址和物理地址的区别和联系
  16. ikbc键盘win键失效的解决方法
  17. 微信小程序java python node医疗微服务系统医院预约挂号系统
  18. chatgpt智能提效职场办公-ppt怎么蒙层
  19. 教师资格证报名照片有什么要求?这些小细节要注意
  20. 根据ParentId生成树状结构这po事

热门文章

  1. my-large.cnf
  2. Qt 静态编译后的exe太大, 可以这样压缩.
  3. SQL语句中between and 范围
  4. mysql定时备份并上传ftp_Linux下定时任务实现mysql自动备份并上传远程ftp
  5. java listmode_java中图形界面ListModel的用法?方法如何调用?
  6. 数字电路中的竞争与冒险
  7. java字符串 n换行符_java切割字符串中的回车应注意是\n\r不是\n
  8. STM32串口发送中断
  9. Django用来作为爬虫框架浅谈
  10. jQuery 之 serialize() serializeArray()