anihaoseyao
anihaoseyao
  • 发布:2017-03-13 15:25
  • 更新:2017-03-13 15:25
  • 阅读:4249

安卓APK和webAPP互调并传递多个参数分享

分类:HBuilder

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

over -- 由于论坛自身格式问题,我一直没办法展示很好,我把他整理在博客里了:阿里学院

1 关注 分享
aliang888

要回复文章请先登录注册