美文网首页iOS高质量博客iOS旅途我爱编程
iOS使用UIWebView与H5交互—JS调用原生方法

iOS使用UIWebView与H5交互—JS调用原生方法

作者: 朝阳小麦 | 来源:发表于2018-06-21 16:35 被阅读155次

适合人群:iOS开发人员。
文本内容:iOS中通过UIWebView与H5交互,实现提供原生方法给内嵌H5页面调用。
(WKWebView的交互方式写法与此不同,详见:
https://www.jianshu.com/p/261e54ea9178

步骤:

1.自定义一个协议,协议要继承JSExport。协议中声明的方法即为需要H5调用的方法。例如:

#import <JavaScriptCore/JavaScriptCore.h>

@protocol JSIneract <JSExport>
  - (void)changeOrientation:(NSInteger)param;
  - (void)selectBrowse;
@end

2.嵌入H5的UIViewController(以下简称VC),实现这个JSIneract协议,并实现对应的方法。

3.VC中的UIWebView实现UIWebViewDelegate代理方法:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
  //js交互,提供方法给js调用
  JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
  context[@“native_method”] = self;
}

备注:context[@“native_method”] = self;中“native_method”为js那边调用该方法的对象的名字,js通过对象.方法的形式调用到原生方法。总体来说,需要和H5端定好两个数据,第一,对象名native_method(任意字符串),第二,方法名。

相关文章

网友评论

    本文标题:iOS使用UIWebView与H5交互—JS调用原生方法

    本文链接:https://www.haomeiwen.com/subject/afhcyftx.html