现在碰到这么一个需求,在已有App安装时,需要判断另一个app是否安装.以及自动安装.
思路如下,在assets目录下.放另一个apk.文件.
1.采取之前文章说到的,判断某个包名是否安装了.
如果没有安装则跳转到第2步.
2.检测并安装插件制作.
package 你的包名;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.net.Uri;
import android.os.Environment;
import android.view.Gravity;
import android.widget.Toast;
public class GetApk extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("GetApk")) {
Toast tips;
tips = Toast.makeText(cordova.getActivity(), "", Toast.LENGTH_SHORT);
tips.setGravity(Gravity.CENTER, 0, 0);
//这里的xxxx.apk我是放到assets目录下.
//也可以不要这段,直接用下面的下载
try {
if(copyApkFromAssets(cordova.getActivity(), "xxxx.apk", Environment.getExternalStorageDirectory().getAbsolutePath()+"/xxxx.apk"))
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath()+"/xxxx.apk"),
"application/vnd.android.package-archive");
cordova.getActivity().startActivity(intent);
}
else
{
new AlertDialog.Builder(cordova.getActivity())
.setTitle("install dhbm")
.setMessage("Please confirm you want to install dhbm")
.setPositiveButton("submit",
new OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
try {
Uri uri = Uri
.parse("http://www.xx.com/xxxx.apk");
Intent it = new Intent(
Intent.ACTION_VIEW,
uri);
cordova.getActivity().startActivity(it);
} catch (Exception e) {
}
}
})
.setNegativeButton("cancel",
new OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
}
}).show();
}
}
catch (Exception e) {
e.printStackTrace();
}
return true;
}
return false;
}
public boolean copyApkFromAssets(Context context, String fileName, String path) {
boolean copyIsFinish = false;
try {
InputStream is = context.getAssets().open(fileName);
File file = new File(path);
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
byte[] temp = new byte[1024];
int i = 0;
while ((i = is.read(temp)) > 0) {
fos.write(temp, 0, i);
}
fos.close();
is.close();
copyIsFinish = true;
} catch (IOException e) {
e.printStackTrace();
}
return copyIsFinish;
}
}
js 部分略过了.之前文章已有讲述.
分享到:
相关推荐
PhoneGap.2.x.Mobile.Application.Development
Apress.Beginning.PhoneGap.Mobile.Web.Framework.for.JavaScript.and.HTML5.2012
phonegap-cli, PhoneGap和 PhoneGap/构建 命令行 接口 PhoneGap命令行接口和 node.js 库。命令行命令行要求安装 node.js 版本 >=4.0.0安装 iOS sim 将应用程序部署到iOS模拟器。安装$ npm install
phonegap插件实现扫一扫功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Create, develop, debug, and deploy your very own mobile applications with PhoneGap About This Book Build hybrid mobile applications with PhoneGap/Cordova using HTML, CSS and JavaScript Optimize and ...
最新版本的phonegap-2.9.1是没有cordova-2.9.1.jar的,这里打包好给大家。
PhoneGap is a useful and flexible tool that enables you to create complex hybrid applications for mobile platforms. In addition to the core technology, there is a large and vibrant community that ...
phoneGAP就是Cordova,据说执行起来比网页快, Android, ios通吃
PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。
北京现在实施汽车尾号限行,小弟的汽车尾号是 8,每周五不能上路,如果忘记了,周五上路了,一旦被摄像头拍下,要罚 100 元,所以这个小软件的用途就是:点击 FRI(周五),FRI 这一列变成红色,提醒小弟周五不要...
Couchbase-Lite-PhoneGap-Plugin, 在Couchbase或者Android上的PhoneGap应用中,安装Lite插件 用于 Couchbase Lite的插件Couchbase Lite是一个嵌入式的JSON数据库,用于偶尔连接的设备。 它在 background 中同步数据...
PhoneGap 上传图片,自己弄的,能正常向服务器上传图片,看明白了在用,不会用就别瞎说了,谢谢。
template.phonegap.gulp.browserify.react.backbone PhoneGap 应用程序的样板模板 安装 • 克隆此存储库 • 安装工具 在项目文件夹根目录中的终端中运行:'npm',如果未找到,则安装 Node.js 和 npm • 安装所需的...
parse-push-plugin, 在分析平台上,为 Cordova/Phonegap/ionic 推送通知插件 Parse.Push 插件Cordova/Phonegap/ionic.的Parse.Push 插件,用于宿主 Parse.com 和开放源码解析服务器。高光工作在 Parse.com 和解析...
phonegap3.4.0如何安装.docx
使用PhoneGap进行移动端开发,使用了HTML5,CSS,javascript,jquery等技术,这是一个初级入门教程
PhoneGap安装.docx
Packt.PhoneGap.for.Enterprise.2014
已经装eclipse,android sdk及adt的安装和配置。 1.进入eclipse界面,新建android工程 new > android project 2.该工程目录下建立两个文档 /libs 和 /assets/www 3.把phonegap中android目录下的cordova-1.7.0.js...