// NewViewController為應(yīng)用內(nèi)創(chuàng)建的原生的ViewController類名,所調(diào)用頁面的內(nèi)容需要在原生代碼中完成
var newVCobj = plus.ios.newObject("NewViewController");
var UIApplicationClass = plus.ios.importClass("UIApplication");
var UIAppObj = UIApplicationClass.sharedApplication();
var del = plus.ios.invoke(UIAppObj,"delegate");
// 如果當前應(yīng)用delegate對象包含UIWindow對象并且變量名命名為“window”可以這么寫,
// 否則需要根據(jù)實際代碼情況修改
// 應(yīng)用的delegate對象也可以添加一個返回UIViewController的方法
var appWindowObj = plus.ios.invoke(del,"window");
var appRootController = plus.ios.invoke(appWindowObj,"rootViewController");
plus.ios.invoke(appRootController,"presentViewController:animated:completion:",newVCobj,"YES",null);
var newVCobj = plus.ios.newObject("ViewController");
// 設(shè)置其name屬性值
newVCobj.plusSetAttribute( "urlString", url );
var UIApplicationClass = plus.ios.importClass("UIApplication");
var UIAppObj = UIApplicationClass.sharedApplication();
var del = plus.ios.invoke(UIAppObj,"delegate");
// 如果當前應(yīng)用delegate對象包含UIWindow對象并且變量名命名為“window”可以這么寫,
// 否則需要根據(jù)實際代碼情況修改
// 應(yīng)用的delegate對象也可以添加一個返回UIViewController的方法
var appWindowObj = plus.ios.invoke(del,"window");
var appRootController = plus.ios.invoke(appWindowObj,"rootViewController");
//plus.ios.invoke(appRootController,"presentViewController:animated:completion:",newVCobj,"YES",null);
plus.ios.invoke(appRootController,"pushViewController:animated:",newVCobj,"YES");
1粪般、unipp跳轉(zhuǎn)android界面
jsCallNativeActivity() {
// #ifdef APP-PLUS
//獲取宿主上下文
var main = plus.android.runtimeMainActivity();
//通過反射獲取Android的Intent對象
var Intent = plus.android.importClass("android.content.Intent");
//通過宿主上下文創(chuàng)建 intent
var intent = new Intent(main.getIntent());
//設(shè)置要開啟的Activity包類路徑 com.example.H5PlusPlugin.MainActivity換掉你自己的界面
intent.setClassName(main, "com.example.H5PlusPlugin.MainActivity");
//開啟新的任務(wù)棧 (跨進程)
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//向原生界面?zhèn)髦挡僮? intent.putExtra("uni_key", "來自uniapp的值");
//開啟新的界面
main.startActivity(intent);
//#endif
}
uniapp接收參數(shù)
在onshow方法里面調(diào)用
onShow() {
//#ifdef APP-PLUS
if (plus.runtime.arguments) {
let lastAppShare = plus.runtime.arguments;
let appArgs = JSON.parse(lastAppShare);
if (appArgs) {
console.log('receive args from native:', appArgs);
}
}
//#endif
},
2林螃、android打開uniapp指定界面
startActivity(new Intent(this, PandoraEntryActivity.class)
.putExtra("userName", "張三")
.putExtra("token", "TOKEN")
.putExtra("path", "login")
)
android接收參數(shù)
Intent i = getIntent();
String uni_key = i.getStringExtra("uni_key");
Toast.makeText(MainActivity.this, uni_key, Toast.LENGTH_LONG).show();
3、AndroidManifest配置