apicloud apicloud

注册
查看: 845|回复: 3

[模块教程] 功能扩展 appManagerPlus 模块示例

主题:
28
帖子:
5034
云币:
4738

[模块教程] 功能扩展 appManagerPlus 模块示例

845 3 | 发表于 2018-3-10 17:46:06 |阅读模式 | |
    appManagerPlus封装了Android上与手机App管理相关的接口,开发者可调用该模块接口管理Android手机上的应用。包括获取手机上所有应用的信息(包括图标)、获取应用大小、静默安装应用、静默卸载应用、打开指定应用、监听手机上App安装和卸载等
   模块文档连接:https://docs.apicloud.com/Client-API/Func-Ext/appManagerPlus
   支持平台:安卓
   模块版本:V1.0.1
  1. var appManagerPlus;
  2.                 var apps;
  3.                 apiready = function() {
  4.                         appManagerPlus = api.require('appManagerPlus');
  5.                 }
  6.                 function fnGetInstalledApplications() {
  7.                         appManagerPlus.getInstalledApplications(function(ret) {
  8.                                 //"icon1"为img标签的id属性,img标签用Android原生路径显示图片的方法:
  9.                                 //img标签的src属性设置为: "file://"+ Android原生路径
  10.                                 //document.getElementById("icon1").src = "file://" + ((ret.apps)[0]).appIcon;
  11.                                 if (ret.status == 1) {
  12.                                         var html = '';
  13.                                         apps = ret.apps;
  14.                                         for (var i = 0; i < ret.apps.length; i++) {
  15.                                                 var s_sys_app = '第三方应用';
  16.                                                 var s_ex_app = '安装在外部SD卡';
  17.                                                 var file = 'file://';
  18.                                                 html += '<li><img src=' + file + ret.apps[i].appIcon + ' / > </li>';
  19.                                                 html += '<li><p> ' + '默认启动的类名:' + ret.apps[i].className + '</p></li>';
  20.                                                 html += '<li><p> ' + '存储私有数据的目录:' + ret.apps[i].dataDir + '</p></li>';
  21.                                                 html += '<li><p> ' + '应用包名:' + ret.apps[i].packageName + '</p></li>';
  22.                                                 html += '<li><p> ' + '应用进程名:' + ret.apps[i].processName + '</p></li>';
  23.                                                 html += '<li><p> ' + 'apk存放的路径:' + ret.apps[i].publicSourceDir + '</p></li>';
  24.                                                 html += '<li><p> ' + 'Android SDK版本:' + ret.apps[i].targetSdkVersion + '</p></li>';
  25.                                                 html += '<li><p> ' + '应用图标存放的原生路径:' + ret.apps[i].appIcon + '</p></li>';
  26.                                                 html += '<li><p> ' + '应用图标存放的fs路径:' + ret.apps[i].appIconFs + '</p></li>';
  27.                                                 html += '<li><p> ' + '应用名称:' + ret.apps[i].appName + '</p></li>';
  28.                                                 html += '<li><p> ' + '应用版本号:' + ret.apps[i].versionCode + '</p></li>';
  29.                                                 html += '<li><p> ' + '应用版本名字:' + ret.apps[i].versionName + '</p></li>';
  30.                                                 if (ret.apps[i].isSystemApp == 1) {
  31.                                                         s_sys_app = '系统应用';
  32.                                                 }
  33.                                                 html += '<li><p> ' + '是否是系统应用:' + s_sys_app + '</p></li>';
  34.                                                 if (ret.apps[i].isExternalApp == 0) {
  35.                                                         s_ex_app = '安装在手机内部存储上';
  36.                                                 }
  37.                                                 html += '<li><p> ' + '是否安装在外部SD卡:' + s_ex_app + '</p></li>';
  38.                                                 html += '<li><p> ------------------------------------------------</p></li>';
  39.                                         };
  40.                                         $api.html($api.byId('info'), html);
  41.                                 };
  42.                         });
  43.                 }

  44.                 function fnInstallApp() {
  45.                         api.download({
  46.                                 url : 'http://downloadpkg.apicloud.com/app/download?path=http://7zbhso.com1.z0.glb.clouddn.com/5af7453fce87ba4ac789085d18d09dd3_d',
  47.                                 savePath : 'fs://uilistcheck.apk'
  48.                         }, function(ret, err) {
  49.                                 if (ret.state == 1) {
  50.                                         appManagerPlus.installApp({
  51.                                                 "apkPath" : ret.savePath
  52.                                         }, function(rets) {
  53.                                                 alert(JSON.stringify(rets));
  54.                                         });
  55.                                 };
  56.                         });
  57.                 }

  58.                 function fnInstallSilent() {
  59.                         api.download({
  60.                                 url : 'http://downloadpkg.apicloud.com/app/download?path=http://7zbhso.com1.z0.glb.clouddn.com/5af7453fce87ba4ac789085d18d09dd3_d',
  61.                                 savePath : 'fs://uilistcheck.apk'
  62.                         }, function(ret, err) {
  63.                                 appManagerPlus.installSilent({
  64.                                         "apkPath" : ret.savePath
  65.                                 }, function(rets) {
  66.                                         alert(JSON.stringify(rets));
  67.                                 });
  68.                         });
  69.                 }

  70.                 function fnUnInstallApp() {
  71.                         if (!apps) {
  72.                                 alert('请先调用 获取应用信息接口');
  73.                         } else if (apps.length > 0) {
  74.                                 appManagerPlus.unInstallApp({
  75.                                         "pkgName" : apps[0].packageName
  76.                                 }, function(rets) {
  77.                                         alert(JSON.stringify(rets));
  78.                                 });
  79.                         }
  80.                         ;
  81.                 }

  82.                 function fnUnInstallSilent() {
  83.                         if (!apps) {
  84.                                 alert('请先调用 获取应用信息接口');
  85.                         } else if (apps.length > 0) {
  86.                                 appManagerPlus.unInstallSilent({
  87.                                         "pkgName" : apps[0].packageName
  88.                                 }, function(rets) {
  89.                                         alert(JSON.stringify(rets));
  90.                                 });
  91.                         }
  92.                         ;
  93.                 }

  94.                 function fnIsInstalled() {
  95.                         appManagerPlus.isInstalled({
  96.                                 "paramType" : 1,
  97.                                 "paramStr" : "微信"
  98.                         }, function(ret) {
  99.                                 if (ret.status == true) {
  100.                                         alert('微信已安装到手机上');
  101.                                 } else {
  102.                                         alert('微信未安装');
  103.                                 }
  104.                         });
  105.                 }

  106.                 function fnIsSystemApp() {
  107.                         appManagerPlus.isSystemApp({
  108.                                 "pkgName" : "com.tencent.mm"
  109.                         }, function(ret) {
  110.                                 var s_des = '第三方应用';
  111.                                 if (ret.status == 1) {
  112.                                         s_des = '系统应用';
  113.                                 } else if (ret.status == 2) {
  114.                                         s_des = '未安装该应用';
  115.                                 } else if (ret.status == 2) {
  116.                                         s_des = '传入的包名为空';
  117.                                 }
  118.                                 alert('微信'+s_des);
  119.                         });
  120.                 }

  121.                 function fnGetAppSize() {
  122.                         appManagerPlus.getAppSize({
  123.                                 "sizeType" : 0,
  124.                                 "pkgName" : "com.tencent.mm"
  125.                         }, function(ret) {
  126.                                 alert(JSON.stringify(ret));
  127.                         });
  128.                 }

  129.                 function fnJumpToApp() {
  130.                         appManagerPlus.jumpToApp({
  131.                                 "jumpType" : 1,
  132.                                 "name" : "QQ"
  133.                         }, function(ret) {
  134.                                 alert(JSON.stringify(ret));
  135.                         });
  136.                 }

  137.                 function fnRegisterAppReceiver() {
  138.                         appManagerPlus.registerAppReceiver(function(ret) {
  139.                                 console.log(JSON.stringify(ret));
  140.                         });
  141.                 }

  142.                 function fnIsVersionChanged() {
  143.                         appManagerPlus.isVersionChanged(function(ret) {
  144.                                 alert(JSON.stringify(ret));
  145.                         });
  146.                 }
复制代码

本帖子中包含更多资源    您需要 登录 才可以下载或查看,没有帐号?立即注册

老司机

UID:253706

主题:
177
帖子:
16969
云币:
8001
发表于 2018-3-12 20:13:03 |

回帖奖励 +1

感谢分享。

驾校小白

UID:716132

主题:
2
帖子:
23
云币:
25
发表于 2019-7-29 17:48:35 |
你好,我在使用appManagerPlus 这个模块中,调用getInstalledApplications这个方法的时候 返回status为0 是什么情况 也没有异常说明,这步知道怎么处理呢

驾校小白

UID:716132

主题:
2
帖子:
23
云币:
25
发表于 2019-7-30 14:26:53 |
不好用,存在多版本不兼容问题,建议使用appUtils
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表