dcloud应用和安卓应用互调并传递参数

/ 0条评论 / 0 个点赞 / 1132人阅读

以下是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();}