方式一,无需回调结果:
let platform = uni.getSystemInfoSync().platform;
if (platform == 'android') {
//获取宿主上下文
var main = plus.android.runtimeMainActivity();
var openUrl = "sway://openapi:8848/oauthLogin?appKey=" + this.appKey + "&pkgName=" + this
.pkgName;
console.log(openUrl);
//通过反射获取Android的Uri对象
var Uri = plus.android.importClass("android.net.Uri");
var uri = Uri.parse(openUrl);
//通过反射获取Android的Intent对象
var Intent = plus.android.importClass("android.content.Intent");
var intent = plus.android.newObject("android.content.Intent", Intent.ACTION_VIEW, uri);
main.startActivity(intent);
} else {
uni.showToast({
title: "仅支持安卓客户端",
icon: 'none',
duration: 2000
});
}
方式二,需要回调结果:
let platform = uni.getSystemInfoSync().platform;
if (platform == 'android') {
//获取宿主上下文
var main = plus.android.runtimeMainActivity();
var openUrl = "sway://openapi:8848/oauthLogin?appKey=" + this.appKey + "&pkgName=" + this
.pkgName;
console.log(openUrl);
//通过反射获取Android的Uri对象
var Uri = plus.android.importClass("android.net.Uri");
var uri = Uri.parse(openUrl);
//通过反射获取Android的Intent对象
var Intent = plus.android.importClass("android.content.Intent");
var intent = plus.android.newObject("android.content.Intent", Intent.ACTION_VIEW, uri);
//请求码保证了,开始的新界面和返回的是同一个操作
var CODE_REQUEST = 1000
main.startActivityForResult(intent, CODE_REQUEST);
//设置原生界面返回后的回调操作
main.onActivityResult = function(requestCode, resultCode, data) {
if (requestCode == CODE_REQUEST) {
//alert(requestCode); //这个是正确的 1000
//alert(resultCode); //始终都是0
//alert(data); //弹出 undefined
plus.android.importClass(data);
var bundle = data.getExtras();
plus.android.importClass(bundle);
let result = eval('(' + bundle.getString("data") + ')');
}
}
} else {
uni.showToast({
title: "仅支持安卓客户端",
icon: 'none',
duration: 2000
});
}