webapp检测安卓app是否安装并launch

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.

function successCallback(e) {
    alert(JSON.stringify(e));
}

function errorCallback(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。

var scheme;

if (device.platform === ‘iOS‘) {
    scheme = ‘iosamap://‘;
}
else if (device.platform === ‘Android‘) {
    scheme = ‘com.autonavi.minimap‘;
}

appAvailability.check(
    scheme,       // URI Scheme or Package Name
    function () {  // Success callback
        alert(scheme + ‘ is available :)‘);
    },
    function () {  // Error callback
        alert(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 phones
    if (!t1 || t2 - t1 < t + 30) {
        hasApp = false;
    }
}, t);

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

时间: 2024-08-05 03:45:48

webapp检测安卓app是否安装并launch的相关文章

【Android】检测app是否安装、安装并打开的方法

1.检测app是否安装 检测app是否安装的方法有很多,以下列举几种.基本都是利用packageManager来完成. a.通过packagemanager获取已经安装的包,然后对比得出是否安装.代码: public boolean isAppInstalled(Context context, String packageName) { final PackageManager packageManager = context.getPackageManager(); List<Package

安卓APP漏洞有哪些?在线免费App漏洞检测!

       针对智能手机的恶意软件早在几年前就已经出现了,不过直到2012年,手机安全问题才忽然成为了大众谈论的焦点.作为专业的移动互联网APP安全服务提供商爱加密来说,很早就开始着手于APP安全领域,为开发者们提供安全检测.应用保护.渠道检测等专业服务,全方位的保护APP安全,防止盗版.山寨.二次打包.注入恶意代码等现象的出现. 据了解,打包党通过APP应用存在的漏洞进行破解打包,形成山寨产品,流入市场给用户和开发者造成利益损害.我们所了解的Android应用程序存在的漏洞主要有:源代码存在

安卓APP动态调试-IDA实用攻略

0x00 前言 随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域.越来越多的人甚至已经对这些APP应用产生了依赖,包括手机QQ.游戏.导航地图.微博.微信.手机支付等等,尤其2015年春节期间各大厂商推出的抢红包活动,一时让移动支付应用变得异常火热. 然后移动安全问题接憧而至,主要分为移动断网络安全和客户端应用安全.目前移动APP软件保护方面还处于初级阶段,许多厂商对APP安全认识不够深入,产品未经过加密处理,使得逆向分析者能够通过逆向分析.动态调试等技术来破解APP,这样APP原本需

简单实现安卓app自动更新功能

一般的安卓app都有自动更新功能,实现app的更新,以让用户体验新版本的功能,这里也是项目中用到的,今天就来总结一下,代码应该有点多,还请耐心点哈. 安卓应用实现自动更新比较简单,这里跟大家介绍下: 第一步 服务器端: 服务端提供一个借口,或者网址,我这里就用的服务器是tomcat,这里提供一个网址如下: //也就是一个json数据接口 public static final String UPDATE_URL = "http://192.168.1.103:8080/update.json&q

安卓APP安全测试基础

学习牛人经验,结合自己的测试,做简单总结: 简介:安卓APP安全测试目前主要覆盖以下方面:1)自身组件安全2)本地敏感数据保护3)web接口安全 一.自身组件安全目前手动.开源或免费工具均能检测此类漏洞.开源工具推荐:drozer免费工具推荐:360捉虫猎手.爱加密.阿里聚安全 当然扫描结果和漏洞扫描结果一样,存在误报,需要测试者自己排除.以图中360捉虫猎手为例,“Service组件暴露”误报: 但实际上在AndroidManifest.xml中,已经声明了相关的权限: <uses-permi

HTML/网站一键打包APK工具(html网页打包安卓APP应用)

工具简介 “HMTL一键打包APK工具”可以把网站打包为一个安卓应用APK文件,无需编写任何代码,支持在安卓设备上安装运行. 线上地址: 点击进入页面 历史更新 1.4.5 (2020.2.16) 1. 优化打包逻辑,添加内核标注 2.新增浏览器打开弹窗支持 3.更新打包证书 4.更换默认打包包名 5.优化打包内核,提示打包速度和稳定性 1.4.2(2019.12.18) 1.优化apk打包速度和容错机制 1.4.1(2019.9.2) 1.新增状态栏颜色设置 2.默认禁用缩放按钮 1.4.0(

安卓App安全检查平台、爱加密App安全加密!

2014年6月初,爱加密高调推出免费自动化App安全检测平台,这是国内首家自动化App安全检测平台,也是爱加密推出的一个重磅产品.作为国内首家免费自动化App安全检测平台,在目前整个互联网行业,包括移动互联网行业还没有这样的服务平台出现,行业前景相当乐观.www.ijiami.cn 只需一键,专业简单,让风险漏洞无处遁形 爱加密漏洞分析平台的推出旨在打造一个服务于移动互联网开发者的安全服务平台,同时也给整个移动互联网安全领域带来一份保障.目前移动应用开发者越来越多,他们不知道自己的应用是否安全,

安卓APP测试之使用Burp Suite实现HTTPS抓包方法

APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一般来说,HTTP协议最多,Websocket是后起之秀,socket最少,而针对HTTP和websocket,Burp Suite工具是最适合不过的工具了.但是在遇到了app使用SSL或TLS加密传输(https)的时候,由于证书不被信任,直接导致网络通信终端,抓包失败.本文介绍如何使用Burp s

如何Python写一个安卓APP

前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python写安卓的APP的可能性,还真行. 既然要写个APP,那么总得要有个想法吧. 其实笔者想做两个APP来着,一个是自己写着好玩的,一个是关于运维的. 关于运维的APP,设计应该如下 可能长这样 然后设计应该是这样. 如果觉得可行的话,评论留言一下你觉得应该写进这个