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

在objective-C中从UIWebView迁移到WKWebView后无法加载本地JS文件

在Objective-C中,从UIWebView迁移到WKWebView后无法加载本地JS文件的问题可能是由于WKWebView的安全策略导致的。为了解决这个问题,可以采取以下步骤:

  1. 确保将本地JS文件正确地添加到项目中,并且在目标的"Copy Bundle Resources"中进行了正确的配置。
  2. 确保在加载本地JS文件时使用正确的文件路径。可以使用NSBundle的方法来获取本地文件的路径,例如:
代码语言:txt
复制
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"your_js_file" ofType:@"js"];
  1. 在WKWebView的配置中,设置allowFileAccessFromFileURLs属性为YES,以允许从文件URL加载本地文件。可以使用WKWebViewConfiguration来进行配置,例如:
代码语言:txt
复制
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.preferences = [[WKPreferences alloc] init];
configuration.preferences.javaScriptEnabled = YES;
configuration.preferences.javaScriptCanOpenWindowsAutomatically = YES;
configuration.allowsInlineMediaPlayback = YES;
configuration.allowsPictureInPictureMediaPlayback = YES;
configuration.allowsAirPlayForMediaPlayback = YES;
configuration.allowsFileAccessFromFileURLs = YES; // 允许从文件URL加载本地文件
  1. 在加载网页之前,使用fileURLWithPath方法将文件路径转换为file URL,然后使用loadFileURL方法加载本地HTML文件。例如:
代码语言:txt
复制
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
[webView loadFileURL:fileURL allowingReadAccessToURL:fileURL];

这样,你就可以在WKWebView中成功加载本地JS文件了。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供可扩展的计算容量,满足各种业务需求。产品介绍链接
  • 云存储(COS):安全可靠的对象存储服务,适用于存储和处理大规模非结构化数据。产品介绍链接
  • 人工智能机器翻译(AI翻译):提供高质量、多语种的机器翻译服务,支持文本、语音和图片翻译。产品介绍链接
  • 云数据库MySQL版(CDB):高性能、可扩展的关系型数据库服务,适用于各种规模的应用程序。产品介绍链接
  • 云原生容器服务(TKE):基于Kubernetes的容器管理服务,提供高可用、弹性伸缩的容器集群。产品介绍链接

请注意,以上推荐的产品仅代表腾讯云的一部分产品,更多产品和详细信息请参考腾讯云官方网站。

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

相关·内容

iOS下JS与OC互相调用(四)--JavaScriptCore

它是iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下,提供了简单快捷的方式与JavaScript交互。...2、代码操作展示 因为该系列主要是JS与OC互调,所以主要介绍如何用JavaScriptCore实现JS与OC互调。 2.1 创建UIWebView,并加载本地HTML。...2.2 添加JS要调用的原生OC方法。 HMTL加载成功的回调方法- (void)webViewDidFinishLoad:(UIWebView *)webView添加要调用的原生OC方法。...要调用的原生OC方法,可以viewDidLoad webView被创建就添加好,但最好是在网址加载成功再添加,以避免无法预料的乱入Bug。...WKWebView如何实现OC与JS交互可以看前面这篇文章:iOS下JS与OC互相调用(三)--MessageHandler UIWebView利用JavaScriptCore来实现交互的示例工程:JS_OC_JavaScriptCore

2.8K10

网易严选的wkwebview测试之路

不过苹果在iOS8以后推出了WKWebView加载Web。UIWebView自iOS2就有,WKWebViewiOS8才有,毫无疑问WKWebView是将会逐步取代笨重的UIWebView。...且UIWebView存在占用过多内存,js执行效率低等问题。而WKWebView网页加载速度大有提升,占用更少内存。   ...从上图可以看出,app进行登录,福利社的webview并没有同步获取相应的登录态,究其原因,主要原因是:WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于...),但是替换了wkwebview之后,无网络状态下本地的html网页无法加载,结果: ?   ...最后,WKWebView相较于UIWebView整体上有较大的提升,满足OS上面使用同一套控件的功能,同时对整个内存的开销以及滚动刷新率和JS交互做了优化的处理。

1.7K10

UI篇- UIWebView使用大全

fileURLWithPath:path]]]; //加载本地文件 //第二种方法: NSString *resourcePath = [[NSBundle mainBundle] resourcePath...OC调用JS方法 与UIWebView进行交互,调用web页面的需要传参的函数时,参数需要带单引号,或者双引号(双引号需要进行转义转义字符前加\),传递json字符串时不需要加单引号或双引号:...有两种方式可根据加载内容 获取UIWebView的合适高度,但都需要在网页内容加载完成才可以,即需要在webViewDidFinishLoad回调中使用。...JS传参数,如何在OC获取到JS传递过来的参数 如果要实现这样的JS和OC的数据交互,需要使用到一个第三方文件:WebViewJavascriptBridge 给web发消息 @property WebViewJavascriptBridge...UIWebView iOS11的使用。 ? UIWebView iOS 11上 当顶部的 y值设为 0 时,是依然无法盖住UIStatusBar区域的,但是滚动时就会出现问题了。

1.9K10

【iOS开发】 UIWebViewWKWebView

③为什么现在是时候 UIWebView移到 WKWebView 了: 截止到我写这篇文章的时候,据 mixpanel 的数据,iOS 9 占有率已达 58.55%,iOS 8 占有率达到了 34.78%...正文 常用代理方法 WKWebView ,UIWebViewDelegate 与 UIWebView 被重构成了14类与3个协议,下面给出一些 UIWebView 中常用的方法的 WKWebView...JS交互 UIWebView ,一句简单的webView.stringByEvaluatingJavaScriptFromString() 就可以用 JS 脚本操纵 WebView, WKWebView...下面的示例代码用于 WKWebView 获取网页的文本。..., forMainFrameOnly: true) // 这里的 AtDocumentEnd 字段是指网页的内容加载完毕再插入 JS 脚本,你也可以选择 AtDocumentStart, document

1.7K20

http:blog.csdn.netu010105969articledetails53541088

本文链接:https://blog.csdn.net/u010105969/article/details/101682356 iOS开发WKWebViewJS的交互 之前已经写过一个篇OC与JS...WKWebView,此控件也能用来显示网页,可与JS的交互却与UIWebView有所不同。...注意:利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码的方法名,而我们使用WKWebView的时候就不用了。...当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。...导入 如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, 继续你的创作。 ---- mermaid语法说明 ↩︎ 注脚的解释 ↩︎

1.5K30

Hybrid App 应用 开发 9 个必备知识点复习(WebView 调试 等)

不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX ,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...库加载并使用, UIWebView 限制了; WKWebView 目前缺少关于页码相关的 API; WKWebView 提供加载网页进度的属性; WKWebView 使用 Safari 相同的 JavaScript...; WKWebView 无法发送 POST 参数问题; WKWebView 可以和js直接互调函数,不像 UIWebView 需要第三方库 WebViewJavascriptBridge 来协助处理和...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView iOS8 才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView ,iOS8 后用...WKWebView 页面样式问题 WKWebView 适配过程,我们发现部分 H5 页面元素位置向下偏移或被拉伸变形,追踪发现主要是 H5 页面高度值异常导致。

3.1K00

【Hybrid】288- Hybrid App 应用开发 9 个必备知识点复习

不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX ,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...无法发送 POST 参数问题; WKWebView 可以和js直接互调函数,不像 UIWebView 需要第三方库 WebViewJavascriptBridge 来协助处理和 js 的交互; 注意...: 大多数App需要支持 iOS7 以上的版本,而 WKWebView iOS8 才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8 后用 WKWebView...WKWebView 页面样式问题 WKWebView 适配过程,我们发现部分 H5 页面元素位置向下偏移或被拉伸变形,追踪发现主要是 H5 页面高度值异常导致。...Fiddler 或 Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

2.3K20

Hybrid App 应用开发 9 个必备知识点复习

不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX ,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...UIWebView 限制了; WKWebView 目前缺少关于页码相关的 API; WKWebView 提供加载网页进度的属性; WKWebView 使用 Safari 相同的 JavaScript...; WKWebView 无法发送 POST 参数问题; WKWebView 可以和js直接互调函数,不像 UIWebView 需要第三方库 WebViewJavascriptBridge 来协助处理和...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView iOS8 才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8...或 Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

2.6K20

小白必看,JSBridge 初探

JSBridge 主要提供了 JS 调用 Native 代码的能力,实现原生功能如查看本地相册、打开摄像头、指纹支付等。...WKWebview 提供了 window.webkit.messageHandlers 方法,支持 iOS 8.0 及以上系统。UIWebview 几年前常用,目前已不常见。...Android 主要有两种方式实现。 4.4 以前,通过 loadUrl 方法,执行一段 JS 代码来实现。 4.4 以后,可以使用 evaluateJavascript 方法实现。...= nil) // javaScriptString 需要调用的 JS 代码 // completionHandler 执行的回调 // objective-c [jsContext evaluateJavaScript...:@"ZcyJsBridge(ev, data)"] JSBridge 的使用 如何引用 由 H5 引用 我司移动端初期版本时采用的是该方式,采用本地引入 npm 包的方式进行调用。

1.4K10

Hybrid App 应用开发 9 个必备知识点复习

不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX ,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...无法发送 POST 参数问题; WKWebView 可以和js直接互调函数,不像 UIWebView 需要第三方库 WebViewJavascriptBridge 来协助处理和 js 的交互; 注意...: 大多数App需要支持 iOS7 以上的版本,而 WKWebView iOS8 才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8 后用 WKWebView...WKWebView 页面样式问题 WKWebView 适配过程,我们发现部分 H5 页面元素位置向下偏移或被拉伸变形,追踪发现主要是 H5 页面高度值异常导致。...Fiddler 或 Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

2.3K30

H5秒开技术选型

通过获取沙盒H5路径直接加载描述:通过获取沙盒H5路径直接加载 将h5文件存入沙盒,webview加载本地文件URL 。...基于NSURLProtocol进行请求拦截,实现预加载描述:UIWebView上,创建个子类,子类里面实现protocol的代理方法即可实现对所有请求的拦截。...拦截对css、js、img等资源加载的请求。优点:UIWebView原生支持缺点:WKWebView网络请求独立于主进程,NSURLProtocol无法拦截。...8.今日头条方案:内置文章详情页所需的css、js文件,并可以控制版本,预创建WebView预创建预加载包含文章详情页所需的css、js的空html列表页预加载文章详情所需的内容使用LRU内存缓存并保存到本地数据库文章详情页获取预创建的...WebView(预加载了html),直接调用js设置页面内容通过js控制图片的显示,图片懒加载(当图片在可见区域或即将可见才会加载图片),点击加载图片等 Html的图片通过ContentProvider

1.1K40

WKWebView 那些坑

导语 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 笨重难用、内存泄漏的 UIWebView。...不过 WKWebView WKProcessPool 实例 app 杀进程重启后会被重置,导致 WKProcessPool 的 Cookie、session Cookie 数据丢失,目前也无法实现...并使用 NSURLConnection 加载 request3,最后通过 NSURLProtocolClient 将加载结果返回 WKWebView; 5、WKWebView 页面样式问题 WKWebView...无奈之下,我们只能约定一个JS接口,让游戏开发商实现该接口,具体是通过 canvas getImageData()方法取得图片数据返回 base64 格式的数据,客户端需要截图的时候,调用这个JS接口获取...8.2、goBack API问题 WKWebView 上调用 -[WKWebView goBack], 回退到上一个页面不会触发window.onload()函数、不会执行JS

4.4K130

WKWebView 那些坑

不过WKWebView WKProcessPool实例app杀进程重启后会被重置,导致WKProcessPool的Cookie、session Cookie数据丢失,目前也无法实现WKProcessPool...实例本地化保存。...并通过NSURLConnection加载request3,最后将加载结果返回WKWebView; 5、WKWebView 页面样式问题 WKWebView适配过程,我们发现部分H5页面元素位置向下偏移或被拉伸变形...无奈之下,我们只能约定一个JS接口,让游戏开发商实现该接口,具体是通过canvas getImageData()方法取得图片数据返回base64格式的数据,客户端需要截图的时候,调用这个JS接口获取...8.2、goBack API问题 WKWebView上调用 -[WKWebView goBack], 回退到上一个页面不会触发window.onload()函数、不会执行JS

17K21
领券