首页投稿(暂停使用,暂停投稿)

iOS 轻量级JSBridge

2017-03-14  本文已影响0人  carlSQ

简介

FMWebViewJavascriptBridge inspired by react native 是一个轻量级的H5 与Native 通信框架,只支持WKWebView iOS 8.0之后。

image

How to Use

自定义 JavascriptInterface


@implementation JavascriptInterface

FM_EXPORT_METHOD(@selector(push:))
- (void)push:(NSUInteger)one {
  [self.viewController.navigationController
      pushViewController:[WKViewController new]
                animated:YES];
  NSLog(@"test push%ld", (unsigned long)one);
}

FM_EXPORT_METHOD(@selector(pop:))
- (void)pop:(NSString *)testArray {
  [self.viewController.navigationController popViewControllerAnimated:YES];
  NSLog(@"pop array %@", testArray);
}

FM_EXPORT_METHOD(@selector(setNavTitle:response:))
- (void)setNavTitle:(NSDictionary *)userInfo response:(FMCallBack)callBack {
  self.viewController.title = userInfo[@"name"];
  callBack(@{@"name":@"carlSQ",@"age":@"26"});
}

添加接口给javascript调用

用 FMWKWebViewBridge 类中的接口addJavascriptInterface 添加接口道javascrip层

_webViewBridge = [FMWKWebViewBridge wkwebViewBridge:self.webView];
[_webViewBridge addJavascriptInterface:[JavascriptInterface new] withName:@"JavascriptInterface"];

js层调用

FM_Require 中的名字是 addJavascriptInterface 中设置的名字


<script>

var javascriptInterface = FM_Require('JavascriptInterface')

javascriptInterface.setNavTitle({"name" : "carl", age:"18"},function(responseData) {
                                     setNavTitle.innerHTML = "name:"+responseData.name +"  age:" + responseData.age;
                                     })

</script>

总结

欢迎PR

上一篇 下一篇

猜你喜欢

热点阅读