美文网首页
iOS 加载本地Html+JS交互排坑指南

iOS 加载本地Html+JS交互排坑指南

作者: 圆脸黑猫警长 | 来源:发表于2019-01-25 17:45 被阅读62次

    话不多说,直接上DSBridge进行js交互处理库,方便快捷。
    pod 'dsBridge'即可,内置有个DWKWebView,继承于系统的WKWebView,所以使用没什么特别。

    0.前置初始化设置(必须)
    WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
    [config.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
    DWKWebView *webView = [[DWKWebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100) configuration:config];
    

    加载本地html会有很多权限限制(跨域问题),此处只是设置了文件读取权限(如果是启动的server则会认为是server内部的访问,则不跨域即不用设置),不设置则会有权限问题。其他更多设置自行去看

    1.是否需要本地启用server?

    这个是根据具体的业务需要定的。
    如果需要,推荐使用GCDWebServer,本文不多深究此方法
    如不需要,继续往下看。

    2.如何加载本地HTML?

    HTML来源可能有两种,一种是直接打包在项目中的,一种下载下来的。

    2.1启server的方式

    使用的URL前缀http://127.0.0.1:9998/ 后面跟文件路径,9998 为启动server时指定的端口

     [webView loadRequest:[NSURLRequest requestWithURL:url]];
    
    2.2普通方式
    NSString *fullPath = @"AAA/BBB/CCC/index.html";
    NSString *fullPathDic = @"AAA/BBB/CCC";
    NSURL *url = [NSURL fileURLWithPath:fullPath];
    NSURL *urlDic = [NSURL fileURLWithPath:fullPathDic];
    [webView loadFileURL:url allowingReadAccessToURL:urlDic];
    

    注意:这里的两个参数第一个是html,第二个是所在路径

    相关文章

      网友评论

          本文标题:iOS 加载本地Html+JS交互排坑指南

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