【MUI】JavaScript和Object-C相互调用

JS调用OC

例一

testDemo.m

oc代码:

+(void)getText:(NSString*) text
{
        NSLog(@"获取内容:%@",text);
}

js代码:

var myString = plus.ios.importClass("testDemo").getText("content");


oc代码:

-(void)getSecondText:(NSString*) text{}

js代码:

var myClass = plus.ios.importClass("testDemo");
var newStr = new myClass();
var mySecondString = newStr.getSecondText("content");


例二

oc代码:
[[NSUserDefaultsstandardUserDefaults]setBool:true forKey:@"demo_test"];

js代码:
var myBool =
plus.ios.importClass("NSUserDefaults").standardUserDefaults().boolForKey("demo_test");


OC调用JS

在MUI中,oc调用js不太好,有一个变通的方式就是函数在oc中实现,在js中,使用js调用oc的结果,如果非要用oc调用js的话,可以使用oc中的webview的一个stringByEvaluatingJavaScriptFromString的方法,但是这个相当于调用某个html文件中的某个js函数,其他的函数并未调用!
比如页面在demo.html中,demo.html中有一个变量aaa需要在demo.html的其他函数中使用,如果这里oc直接调用了js的某个函数,去改变了aaa值,其实只是修改了当前页面的aaa值,并没有对demo.html整个逻辑产生影响,所以目前的方案就是oc不去调用js的函数,使用js调用oc的结果


oc代码:
-(void)testjs {

self.wysweb=[[UIWebViewalloc]init];

NSURL*url=[[NSBundlemainBundle];

URLForResource:@"Pandora/apps/HelloH5/www/index.html"withExtension:nil];

NSURLRequest * request = [NSURLRequestrequestWithURL:url];

self.wysweb.delegate=self;

[self.wysweb loadRequest:request];

}


-(void)webViewDidFinishLoad:(UIWebView*)webView {

[self.wysweb stringByEvaluatingJavaScriptFromString:@"jstest1();"];

[self.wysweb stringByEvaluatingJavaScriptFromString:@"jstest2(\"wys\");"];

}

js代码:
function  jstest1() {

alert("success");

}

function  jstest2(string) {

alert(string);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,858评论 0 6
  • WebViewJavascriptBridge应该是当前最流行最成功的OC与Web交互实现了。最近看了一下他的实现...
    廖丹_18be阅读 3,162评论 0 4
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,775评论 0 9
  • 日子又慢又快的过着,在平淡的生活中有期许,有等待。要是有了什么就好了,我们总是抱期望于未来,感觉好像有了什么我们的...
    小蜜金猴阅读 294评论 0 1