ysf
ysf
  • 发布:2015-07-15 18:32
  • 更新:2018-12-10 10:12
  • 阅读:15270

Android如何判断app是否安装(native.js)

分类:Native.js

请问:Android 判断app是否安装(native.js)

2015-07-15 18:32 负责人:无 分享
已邀请:

最佳回复

Android_磊子

Android_磊子

var packageName = 'io.dcloud.HBuilder'  
var main = plus.android.runtimeMainActivity();  
var packageManager = main.getPackageManager();  
var PackageManager = plus.android.importClass(packageManager)  
var packageInfo = packageManager.getPackageInfo(packageName,PackageManager.GET_ACTIVITIES);  
if(packageInfo ){  
    alert('已安装' + packageName + '')  
}  

如果获取不到,注意手机权限管理是不是禁用了

  • MMM

    这个不好使呀 每次都是未安装。

    2015-08-30 19:57

  • Android_磊子

    回复 MMM:判断哪个程序不好使,原生层确实使用此方法进行判断的。

    2015-08-31 11:35

s***@gmail.com

s***@gmail.com - www.7di.net

packageName='ccc71.at';
plus.android.importClass('android.content.pm.PackageInfo');
plus.android.importClass('android.content.pm.PackageManager');
var PackageManager = plus.android.runtimeMainActivity().getPackageManager();

var isInstall = plus.android.invoke(PackageManager, 'getLaunchIntentForPackage', packageName);
if(isInstall) {
var pinfo = plus.android.invoke(PackageManager, 'getPackageInfo', packageName, 0)
if(pinfo) {
var versionName = pinfo.plusGetAttribute("versionName");
var versionCode = pinfo.plusGetAttribute("versionCode");
alert('已安装 '+packageName+' versionName: '+versionName+' versionCode: '+versionCode);
}pinfo=null;
} else {
alert('未安装 '+packageName);
}isInstall=packageName=null;

MMM

MMM

这个不好使呀 每次都是未安装。

yoyoo

yoyoo

获取不到信息,不知道有没有人成功过。

  • Android_磊子

    什么信息获取不到?

    还有建议参看下NJS规范http://www.html5plus.org/doc/zh_cn/android.html

    2015-09-14 14:04

  • MMM

    能获取到需要取包名

    2015-09-28 19:32

你猜我猜不猜

你猜我猜不猜

可以成功,假如没有安装会报一个异常。这个代码重点是包名是这个,我写在mainfied.json里面的没有效果,需要写在打包这里

2***@qq.com

2***@qq.com

安卓可以,IOS要卡死掉

  • x***@126.com

    这个异常如何捕捉呀

    2017-08-07 10:15

  • x***@126.com

    IOS要怎么写呢?有解决吗?

    2017-08-07 16:36

n***@gmail.com

n***@gmail.com

Uncaught android.content.pm.PackageManager$NameNotFoundException: com.jq.printerlabel;at android.app.ApplicationPackageManager.getPackageInfo at Pages/Order/CreateOrder.html:1

Native_O

Native_O

用QQ测试报错,就HBuilder能弹出来

Native_O

Native_O

就腾讯的微信可以,,,,,,,,,,

h***@gmail.com

h***@gmail.com

如何讀取此 package 中的 versionCode & versionName

爆栈工程师

爆栈工程师 - 爆栈工程师

            //获取其他app的版本号和code  
            function getAppNameAndCode(packageName) {  
                plus.android.importClass('java.util.ArrayList');  
                plus.android.importClass('android.content.pm.PackageInfo');  
                plus.android.importClass('android.content.pm.PackageManager');  
                var MainActivity = plus.android.runtimeMainActivity();  
                var PackageManager = MainActivity.getPackageManager();  
                //先判断是否已经安装 不然报错  
                var isInstall = plus.android.invoke(PackageManager, 'getLaunchIntentForPackage', packageName);  
                var result = null; //返回对象  
                if(isInstall) {  
                    var pinfo = plus.android.invoke(PackageManager, 'getPackageInfo', packageName, 0)  
                    if(pinfo) {  
                        var versionName = pinfo.plusGetAttribute("versionName"); //版本  
                        var versionCode = pinfo.plusGetAttribute("versionCode"); //code  
                        result = [versionName, versionCode];  
                    }  
                    return result  
                } else {  
                    return result; //返回空代表未安装  
                }  

            }

          var a = getAppNameAndCode("com.sina.weibo111");   
                if(a) {  
                    mui.alert("版本:" + a[0] + " ----- Code:" + a[1])  
                } else {  
                    mui.alert("未安装!")  
                }  

该问题目前已经被锁定, 无法添加新回复