首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WKWebView不加载使用fileURLWithPath:relativeToURL创建的NSURL:

WKWebView是苹果公司提供的用于在iOS和macOS应用程序中显示网页内容的组件。它是基于WebKit引擎的一部分,具有高性能和先进的Web功能。

fileURLWithPath:relativeToURL是一个方法,用于创建一个本地文件的URL。它接受两个参数,第一个参数是文件的路径,第二个参数是基于哪个URL进行解析相对路径。

然而,WKWebView在加载本地文件时存在一些限制。它不允许直接加载使用fileURLWithPath:relativeToURL创建的NSURL。这是因为WKWebView的安全策略要求所有加载的内容都必须来自网络,而不是本地文件系统。

为了解决这个问题,可以使用loadFileURL:allowingReadAccessToURL方法来加载本地文件。该方法接受两个参数,第一个参数是要加载的文件的URL,第二个参数是允许访问的URL。通过将要加载的文件的URL传递给loadFileURL:allowingReadAccessToURL方法,可以成功加载本地文件。

以下是一个示例代码:

代码语言:swift
复制
let fileURL = Bundle.main.url(forResource: "index", withExtension: "html")
let baseURL = Bundle.main.bundleURL

webView.loadFileURL(fileURL!, allowingReadAccessTo: baseURL)

在这个示例中,我们首先使用Bundle.main.url(forResource:withExtension:)方法获取要加载的文件的URL。然后,我们使用Bundle.main.bundleURL获取基本URL。最后,我们调用webView.loadFileURL(_:allowingReadAccessTo:)方法来加载本地文件。

需要注意的是,加载本地文件时,需要确保文件存在,并且应用程序具有访问该文件的权限。

推荐的腾讯云相关产品:腾讯云移动浏览器(Tencent Mobile Browser)是一款基于WebKit内核的移动浏览器,可用于在移动应用程序中显示网页内容。它提供了与WKWebView类似的功能,并且与腾讯云的其他产品和服务集成良好。

腾讯云移动浏览器产品介绍链接地址:https://cloud.tencent.com/product/tmb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WKWebView 加载 Uni-App 导出本地 H5

Uni-App 打包发布H5包直接放到APP中加载可以用于提升加载速度,一般有两种方式: 直接把包放到 iOS 项目中加载 (多用于开发阶段测试) 从后台服务器预下载到文件沙盒内加载 (可以减少APP...包大小,同时也能实现热更新功能) 加载步骤 一、创建一个uni-app项目,并打包成H5 在官方工具HBuilder中创建一个测试项目 创建uni-app 修改 manifest.json...文件中 h5配置运行基础路径为:./ 修改配置 发行为H5 H5发行 二、iOS项目内直接加载包内 Uni-App 将整个Uni-App...loadRequest:request]; } 三、加载沙盒内Uni-App 基本逻辑和加载本地一致,但是必须使用 relativeToUrl 方法加载,首先确认自己缓存目录,然后给路径拼接file...:loadUrl allowingReadAccessToURL:[NSURL fileURLWithPath: [paths objectAtIndex:0]]]; } iOS 加载Uni-APP

91130

iOS下JS与OC互相调用(二)--WKWebView 拦截URL

1.创建WKWebView加载本地HTML。 WKWebView创建有几点不同: 1.初始化多了个configuration参数,当然这个参数我们也可以传,直接使用默认设置就好。...如果在HTML中要使用alert等弹窗,就必须得实现UIDelegate相应代理方法。 3.在iOS 9之前,WKWebView加载本地HTML会有一些问题。...(不能加载本地HTML,或者部分CSS/本地图片加载不了等) 我这里创建WKWebView示例代码是这样: WKWebViewConfiguration *configuration = [...*fileURL = [NSURL fileURLWithPath:urlStr]; [self.webView loadFileURL:fileURL allowingReadAccessToURL...4.WKWebView使用弹窗 在上面提到,如果在WKWebView使用alert、confirm 等弹窗,就得实现WKWebViewWKUIDelegate中相应代理方法。

3.4K50

iOS加载本地HTML、pdf、doc、excel文件 & HTML字符串与富文本互转

1.1 原理 1.2 源码 1.3 核心代码 2.1 iOS12之前使用UIWebView 2.2 iOS12之后采用WKWebView 3.1 html转换为富文本 3.2 富文本转换为html 前言...iOS加载本地HTML、pdf、doc、excel文件,都可采用WebView进行实现即可 HTML字符串与富文本互转 应用场景:使用原生视图UILabel显示服务端返回带有HTML标签内容 原文...将它作为邮件附件,在手机端选择其他应用打开,将html文件存储到文件iCloud/本机 再根据文件名称打开即可 如果你有需求在手机端打开本地html需求,又觉得使用其他方法麻烦或者不管用时候,推荐你可以自己写个简单...*baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; NSString *html = [NSString...- (void)setupAXWebViewController:(NSString*)path{ NSURL *baseURL = [NSURL fileURLWithPath

1.9K30

WKWebView接入PDF.js过程记录处理总结

问题最近用WKWebView读取PDF文件出现字体异常、电子图章不显示问题,后来查找很多解决方案,最后决定用PDF.js方式来实现解决方案参考https://www.jianshu.com/p/ded81b392d4d...写了demo能接入PDF,但部分字体在真机上还是接入异常,后来使用gulp generic-legacy生成generic-legacy稳定包之后,对Safari进行兼容后,终于能修复字体异常问题PDF.js...URLWithString:urlStr]]; [self loadRequest:request];bytes方式动态加载读取:SBundle mainBundle] pathForResource...:@"viewer" ofType:@"html" inDirectory:@"generic/web"]; NSURL * viwerPathURL = [NSURL fileURLWithPath...allowingReadAccessToURL:dir]; //动态加载写法 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64

2.5K30

WKWebView接入PDF.js过程记录处理总结

问题 最近用WKWebView读取PDF文件出现字体异常、电子图章不显示问题,后来查找很多解决方案,最后决定用PDF.js方式来实现 解决方案 参考https://www.jianshu.com/...p/ded81b392d4d 写了demo能接入PDF,但部分字体在真机上还是接入异常,后来使用 gulp generic-legacy 生成generic-legacy稳定包之后,对Safari进行兼容后...important; /* move doc up into empty bar space */ } 读取本地PDF文件方式有两个,一个是初始化接入参数,一个是通过bytes方式动态加载读取 初始化接入参数...:@"viewer" ofType:@"html" inDirectory:@"generic/web"]; NSURL * viwerPathURL = [NSURL fileURLWithPath...allowingReadAccessToURL:dir]; //动态加载写法 dispatch_after(dispatch_time(DISPATCH_TIME_NOW,

2.8K30

分享超详细 WKWebView 开发和使用经验

WKWebView 几个不常用特性 WKWebview 加载过程中性能指标图解 WKWebview 秒开实践及踩坑之路 今天分享这篇文章全面的介绍了 WKWebView,作者根据开发和使用经验从属性...加载本地地址 Bundle下资源加载 iOS9.0 以上可以使用以下方法加载 - (nullable WKNavigation *)loadFileURL:(NSURL *)URL...其余访问本地 HTML 方法 [wk loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:indexPath]]]; 同样...当一个 WebView初始化,一个新 Web 内容进程会从一个特殊进程池中创建,或者一个已存在进程会被使用。...didFailProvisionalNavigation 正常加载地址或者使用 js 中 location.href 加载错误地址发生失败会走该回调。

4.6K30

iOS小技能:WKWebView与JS交互

前言 由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebViewWKScriptMessageHandler实现iOS与JS交互 WKWebView是Apple在iOS8推出Webkit...但只有在整个webView加载完成之后调用此方法才会有响应 2.1 执行JS iOS使用WKWebView-evaluateJavaScript:completionHandler:方法执行拼接好JS...WKWebView在每次加载请求完成后会调用此方法 (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation...小程序 iOS 端「同层渲染」也正是基于 WKChildScrollView 实现,原生组件在 attached 之后会直接挂载到预先创建 WKChildScrollView 容器下,大致流程如下...通过上述流程,小程序原生组件就被插入到 WKChildScrollView 了,也即是在 步骤1 创建那个 DOM 节点对应原生 ScrollView 子节点。

5.8K30

iOS中WebKit框架应用与解析 原

iOS中WebKit框架应用与解析 一、引言         在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过URL或者HTML文件来加载网页视图,功能十分有限,只能作为辅助嵌入原生应用程序中...三、使用WKWebViewConfiguration对WebView进行配置         使用下面的代码可以创建一个WKWebView视图,创建WebView视图时,需要使用WKWebViewConfiguration...//通过HTML字符串加载网页视图 - (nullable WKNavigation *)loadHTMLString:(NSString *)string baseURL:(nullable NSURL...nullable, nonatomic, readonly, copy) NSURL *URL; //网页是否正在加载中 @property (nonatomic, readonly, getter=isLoading...*)webView{ } 七、WKUIDelegate协议中方法解析 //创建webView时调用方法 -(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration

1.9K40
领券