美文网首页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