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

iOS: WKWebView不会立即加载本地JS文件

WKWebView是iOS中的一个Web浏览器控件,用于在应用程序中显示网页内容。它是基于WebKit引擎的一部分,提供了更好的性能和功能。

在使用WKWebView加载本地JS文件时,它不会立即加载文件,而是需要通过一定的步骤来实现。以下是一种常见的实现方式:

  1. 将JS文件添加到Xcode项目中的合适位置,例如将JS文件添加到项目的资源文件夹中。
  2. 在应用程序中创建一个WKWebView实例,并设置其相关属性,例如frame、configuration等。
  3. 使用WKWebView的loadFileURL(_:allowingReadAccessTo:)方法加载本地JS文件。该方法接受两个参数:文件的URL和允许访问的URL。例如:
代码语言:txt
复制
if let url = Bundle.main.url(forResource: "example", withExtension: "js") {
    webView.loadFileURL(url, allowingReadAccessTo: url.deletingLastPathComponent())
}

这将加载名为"example.js"的本地JS文件,并允许访问该文件所在目录。

  1. 在加载完成后,可以通过WKWebView的evaluateJavaScript(_:completionHandler:)方法来执行JS代码。例如:
代码语言:txt
复制
webView.evaluateJavaScript("alert('Hello, World!');", completionHandler: nil)

这将在WKWebView中执行一段JS代码,显示一个弹窗。

WKWebView的优势包括:

  • 高性能:WKWebView使用了WebKit引擎,具有更快的渲染速度和更低的内存占用。
  • 支持现代Web标准:WKWebView支持HTML5、CSS3、JavaScript等现代Web标准,可以展示更丰富的网页内容和交互效果。
  • 内置安全性:WKWebView内置了安全性功能,可以防止恶意网站的攻击,提供更安全的浏览体验。

WKWebView适用于以下场景:

  • 在应用程序中显示网页内容:可以将WKWebView嵌入到应用程序中,用于显示网页内容,例如展示产品信息、新闻内容等。
  • 实现混合开发:可以将本地的原生界面与Web界面进行混合开发,实现更丰富的应用功能。
  • 加载动态内容:可以通过加载本地JS文件或执行JS代码,实现动态的网页内容展示和交互效果。

腾讯云提供了一系列与云计算相关的产品,其中包括与WKWebView相关的产品。具体推荐的产品和产品介绍链接地址可以参考腾讯云官方网站或咨询腾讯云的客服人员。

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

相关·内容

  • ​# iOS WKWebView适配(基础篇)

    js,如果是no,html加载时候直接忽略js加载 KVC设置 allowFileAccessFromFileURLs 是否允许file路径 [prefs setValue:@TRUE forKey:...js功能,估计是安全问题,因为使用中有的会采用这个作为bridge桥接 5.WKNavigationDelegate wkwebview.navigationDelegate属性 监听wkwebview...为了兼容iOS8的js通信,也可以在这里拦截url做bridge分发 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction...,然后请求沙盒方式读取页面 自定义了一个url头部"bundle://",在请求的时候做"file:///"头部替换 4.加载源代码 直接把html文件读出来以后,以页面内容方式去读取 [self.wkWebView...,解压后放在本地指定的沙盒目录,随后通过wkwebview加载本地方式打开页面。

    3.8K30

    网易严选的wkwebview测试之路

    不过苹果在iOS8以后推出了WKWebView加载Web。UIWebView自iOS2就有,WKWebViewiOS8才有,毫无疑问WKWebView是将会逐步取代笨重的UIWebView。...且UIWebView存在占用过多内存,js执行效率低等问题。而WKWebView网页加载速度大有提升,占用更少内存。   ...2、wkwebview本地html页面加载失败   严选app内置了一份网络解决方案,如若检测到无网络状态可以查看这个本地页面进行网络的配置(主要是iOS10系统刚推出的时候,需要用户开启app启动网络的权限才能使用的问题...),但是替换了wkwebview之后,无网络状态下本地的html网页无法加载,结果: ?   ...开发大大排查之后发现是wkwebview加载的方法变了(wkwebview不支持用loadRequest的方法加载本地的静态HTML),要替换不同的方法来加载,修复之后的效果 3、wkwebview

    1.7K10

    iOS 下利用简单代码实现 JS 双引擎功能思路

    二、思路概括 步骤一、 WKWebView 加载本地的一个 H5 页面,然后,在按钮的点击事件里将需要做的耗时事情告诉 iOS 原生 步骤二、iOS 原生收到消息后,创建一个原生下的 JSContext...步骤三、JSContext 对象加载本地写好的 JS 文件,然后通过步骤一传进来的参数直接异步调用 JS 文件下对应的 function。...步骤四、执行完 JS 文件下对应的 function 后进行返回 iOS 主线程,用 WkWebview 对象执行 H5 页面里的一个固定的回调方法,将数据结果返回至前端页面。...2、创建有简单耗时任务 JS 文件 main.js 这个 JS 文件就是 JSContext (原生内可提供 JS 虚拟环境的对象)对象要加载 JS 文件,用它来模拟一些耗时的任务。...WKWebView 代理方法 对比一下 H5 文件下的 loadAction 方法, 1、对应 WKWebView 代理方法里的 name 标识 2、对应 WKWebView 代理方法里的 body

    2.6K00

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView ,iOS8 后用...依据职责单一原则,拆分成了三个协议去实现 WebView 的响应,解耦了 JS 交互和加载进度的响应处理。...9. goBack API问题 WKWebView 上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload() 函数、不会执行JS。 10....Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

    3.1K00

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8 后用 WKWebView...依据职责单一原则,拆分成了三个协议去实现 WebView 的响应,解耦了 JS 交互和加载进度的响应处理。...9. goBack API问题 WKWebView 上调用 -[WKWebViewgoBack], 回退到上一个页面后不会触发 window.onload() 函数、不会执行JS。 10....Fiddler 或 Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

    2.3K20

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8...依据职责单一原则,拆分成了三个协议去实现 WebView 的响应,解耦了 JS 交互和加载进度的响应处理。...9. goBack API问题 WKWebView 上调用 -[WKWebViewgoBack], 回退到上一个页面后不会触发 window.onload() 函数、不会执行JS。 10....或 Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

    2.7K20

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8 后用 WKWebView...依据职责单一原则,拆分成了三个协议去实现 WebView 的响应,解耦了 JS 交互和加载进度的响应处理。...9. goBack API问题 WKWebView 上调用 -[WKWebViewgoBack], 回退到上一个页面后不会触发 window.onload() 函数、不会执行JS。 10....Fiddler 或 Charles 的主要作用有: 可以代理请求,用来查看页面发送的请求和接收的响应; 可以修改请求的响应,用来模拟自己想要的数据; 可以模拟网络请求的速度; 可以代理服务器的静态资源请求,指向本地文件

    2.3K30

    JSBridge 原理

    JSBridge 主要提供了 JS 调用 Native 代码的能力,实现原生功能如查看本地相册、打开摄像头、指纹支付等。...,给用户“卡顿”的感觉 加载速度快,更加流畅 用户体验 功能受浏览器限制,体验有时较差 原生系统 api 丰富,能实现的功能较多,体验较好 可移植性 兼容跨平台跨系统,如 PC 与 移动端,iOS 与...由于安全机制,WKWebView 对 alert、confirm、prompt 等方法做了拦截,如果通过此方式进行 Native 与 JS 交互,需要实现 WKWebView 的三个 WKUIDelegate...WKWebview 提供了 window.webkit.messageHandlers 方法,支持 iOS 8.0 及以上系统。UIWebview 在几年前常用,目前已不常见。...在 WKWebview 中可以通过 evaluateJavaScript:javaScriptString 来实现,支持 iOS 8.0 及以上系统。

    2.2K40

    小白必看,JSBridge 初探

    JSBridge 主要提供了 JS 调用 Native 代码的能力,实现原生功能如查看本地相册、打开摄像头、指纹支付等。...,给用户“卡顿”的感觉 加载速度快,更加流畅 用户体验 功能受浏览器限制,体验有时较差 原生系统 api 丰富,能实现的功能较多,体验较好 可移植性 兼容跨平台跨系统,如 PC 与 移动端,iOS 与...由于安全机制, WKWebView 对 alert、confirm、prompt 等方法做了拦截,如果通过此方式进行 Native 与 JS 交互,需要实现 WKWebView 的三个 WKUIDelegate...WKWebview 提供了 window.webkit.messageHandlers 方法,支持 iOS 8.0 及以上系统。UIWebview 在几年前常用,目前已不常见。...在 WKWebview 中可以通过 evaluateJavaScript:javaScriptString 来实现,支持 iOS 8.0 及以上系统。

    1.5K10
    领券