MUI混合开发,跳转iOS原生界面并传值
通过mui官方文档我们知道mui是有调用IOS原生界面的能力的,具体可以查看官方文档Native.js这一块,下面我将跳转IOS原生界面并传值的代码分享一波
//ViewControllers为要跳转的原生页面
var newVCobj = plus.ios.newObject("ViewControllers");
var UIApplicationClass = plus.ios.importClass("UIApplication");
var UIAppObj = UIApplicationClass.sharedApplication();
var del = plus.ios.invoke(UIAppObj,"delegate");
var appWindowObj = plus.ios.invoke(del,"window");
var appRootController = plus.ios.invoke(appWindowObj,"rootViewController");
//js注册通知进行js与oc传值 defaultsName为通知名, 1234为需要传的值, 原生实现通知方法进行值接收。
SetUserDefault("defaultsName", "1234");
//从底部向上弹出方式跳转。
plus.ios.invoke(appRootController,"presentViewController:animated:completion:",newVCobj,"YES",null);
//带有原生导航的跳转方式,跳转动画为从右到左滑入。
// plus.ios.invoke(appRootController,"pushViewController:animated:",newVCobj,"YES");
//注册通知进行js传值到oc界面
function SetUserDefault(key, value)
{
if (typeof value != 'undefined' && typeof key === "string")
{
var UserDefaultsClass = plus.ios.importClass("NSUserDefaults");
var standardUserDefaults = UserDefaultsClass.standardUserDefaults();
plus.ios.invoke(standardUserDefaults, "setObject:forKey:", value, key);
plus.ios.invoke(standardUserDefaults,"synchronize");
}
}
//oc页面实现通知接收传值方法
NSUserDefaults* pDefDefaults = [NSUserDefaults standardUserDefaults];
if (pDefDefaults) {
NSString* pString = [pDefDefaults objectForKey:@"defaultsName"];
NSLog(@"这里是js通知所传的值:%@",pString);
}
返过来,oc要给js传值也可以通过发送通知进行传值。
后面会将几种页面跳转,跳转刷新前往页面的方法总结一下…