分享最热门的ios资讯
首先,附加上封装库的源码地址 FMBridgeJSOC源码
先简单介绍一下这个库吧:这个库的所有要领都注册到了html的window控件上,这里有个原因不得不说一下,就是在web页面调用中,如果我们参考网络上的多数通过实现JSExport要领来注册到window.app的方式来处理,那么就会存在要领还未界说就被调用的情况。具体来讲就是网页中点击链接切换时跳转到某个网页,在加载时取获取参数,这是可能存在app的初始化都还未完成我们就开始调用了。而对于一个window窗口的生命周期这里就不讲了。
对于 FMBridgeJSOC 这个库采用了pod支持的方式。我们只需在通过创建的用pod管理的工程中的Podfile中加入
pod 'FMBridgeJSOC'
然后执行
pod update
即可导入。
好吧,引入封装库了,接下来就介绍一下使用。
首先,界说一个controller类,在累中引入文件
UIWebView+JSBridge.h
好了接下来我们界说在累中界说一个要领吧
这里,我就用界说一个下面的要领吧:
- (NSString *(^)(BOOL isLocal)) hello:(NSString *)hello welcome:(NSString *)welcome;
看出来了吧,支持block操作哦。好了,不吹了,
下面是要领的具体实现
- (NSString *(^)(BOOL isLocal)) hello:(NSString *)hello welcome:(NSString *)welcome {
return ^NSString *(BOOL isLocal){
return [NSString stringWithFormat:@"%@",isLocal ? welcome : hello];
};
}
现在我们要做什么呢?
很简单就是在viewdidLoad中界说一个webview。
我在这里采用了属性的方式界说了一个webview
- (UIWebView *)webView {
if (_webView == nil) {
_webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:_webView];
}
return _webView;
}
然后调用
[self.webView registerJSCallSelector:@selector(hello:welcome:) withTarget:self];
这样,我们在基于这个webView展示的h5页面中就可以随意调用一个以hellowelcome()为名的要领了。
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"]]]];
这个就是我们的具体调用。
至于具体的h5调用d实现里面又个小示例,这里多说,更多参考其他资料吧。
各位看客,如果觉得可以的话可以star或fork一下以示支持哦。
用意志战胜身体的惰性!
本文由 姬長信 创作,文章地址:https://blog.isoyu.com/archives/1181.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 13, 2016 at 10:41 上午