dcloud应用和安卓应用互调并传递参数
2017-03-13 本文已影响517人
刘书亚的天堂之路
以下是webAPP启动安卓应用和获取安卓应用传递过来的参数
webAPP启动安卓APK并传递参数
请看:
function startAndroidActivity(){
var Intent = plus.android.importClass("android.content.Intent");
var intent = new Intent(Intent.ACTION_VIEW);
var ComponentName = plus.android.importClass("android.content.ComponentName");
var comp = new ComponentName("你的安卓APK的Package,在AndroidManifest.xml里面,比如yy.com.testandriodapp", "你的安卓APK启动控制器,比如yy.com.testandriodapp.MainActivity");
intent.setComponent(comp);
intent.setAction("android.intent.action.MAIN");
intent.putExtra("参数一key", "参数一value");
intent.putExtra("参数一key", "参数二value");
var main = plus.android.runtimeMainActivity();
main.startActivity(intent);
}
接收安卓数据
请看:
document.addEventListener('plusready', function() {
checkArguments();
});
// 判断启动方式
function checkArguments() {
Intent = plus.android.importClass("android.content.Intent");
// 程序全局环境对象,内部自动导入Activity类
mainActivity = plus.android.runtimeMainActivity();
intent = mainActivity.getIntent();//获取启动intent
name = intent.getStringExtra("name");//通过intent获取参数
birthday = intent.getStringExtra("birthday");
alert(name);
alert(birthday);
}
// 处理从后台恢复
document.addEventListener('newintent', function() {
checkArguments();
}, false);
以下是安卓应用获取webAPP传递过来的参数和启动webAPP
获取webAPP传递过来的参数
请看:
Intent intent1 = getIntent();
Bundle bundle = intent1.getExtras();
if (bundle != null) {
String name = bundle.getString("name");
if (name != null) {
Toast.makeText(getApplicationContext(), "name:" + name, Toast.LENGTH_SHORT).show();
}
String birthday = bundle.getString("birthday");
if (birthday != null) {
Toast.makeText(getApplicationContext(), "birthday:" + birthday, Toast.LENGTH_SHORT).show();
}
}
安卓应用启动webAPP
请看:
Intent intent = new Intent();
// 这里如果intent为空,就说名没有安装要跳转的应用嘛
ComponentName componentName = new ComponentName("你在mainfest的->代码视图->google->packagename设置的包名,比如:io.dcloud.Test","这个参数是固定的,dcloud默认都会生成这个activity名字:io.dcloud.PandoraEntryActivity");
if (intent != null) {
// 这里跟Activity传递参数一样的嘛,不要担心怎么传递参数,还有接收参数也是跟Activity和Activity传参数一样
intent.setComponent(componentName);
intent.putExtra("name", "Liu xiang");
intent.putExtra("birthday", "1983-7-13");
startActivity(intent);
} else {
// 没有安装要跳转的app应用,提醒一下
Toast.makeText(getApplicationContext(), "哟,赶紧下载安装这个APP吧", Toast.LENGTH_LONG).show();
}