美文网首页
iOS WKWebview加载本地的HTML文件报错 Error

iOS WKWebview加载本地的HTML文件报错 Error

作者: 程序猿马国玺 | 来源:发表于2019-08-09 14:15 被阅读0次
    出错案例

    本地沙盒有多个HTML文件及资源,使用loadFileURL方法轮流加载HTML文件,第一次加载正常,第二次加载出错。并且报错Error Domain=kCFErrorDomainCFNetwork Code=1
    这个错误只在真机上会出现,模拟器上可以正常的加载第二个第三个等HTML文件。

    原因

    http://www.openradar.me/45346962
    https://stackoverflow.com/questions/40472796/wkwebview-loadfileurl-works-only-once
    通过查询得出原因可能是出在loadFileURL这个方法第二个参数readAccess上。

    - (nullable WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL API_AVAILABLE(macosx(10.11), ios(9.0));
    

    这个参数传HTML需要访问的资源路径。我在传参的时候,加载哪个HTML文件,就传哪个HTML的资源文件路径。但是WKWebview会锁定第一次传的资源路径,之后再传都会不起作用。这就导致我加载第二个HTML文件的时候找不到资源文件而报错。

    解决方案

    把所有本地HTML文件放在同一文件夹下,readAccessURL传所有HTML文件的资源路径。


    沙盒路径

    如图,51、52、53等文件夹里都是一个独立的网页和资源,readAccessURL应该传unzip文件夹的路径,而不是51文件夹的路径。

    相关文章

      网友评论

          本文标题:iOS WKWebview加载本地的HTML文件报错 Error

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