美文网首页Android
dcloud应用和安卓应用互调并传递参数

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

作者: 刘书亚的天堂之路 | 来源:发表于2017-03-13 15:45 被阅读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();
    }
    

    相关文章

      网友评论

        本文标题:dcloud应用和安卓应用互调并传递参数

        本文链接:https://www.haomeiwen.com/subject/sdtqnttx.html