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

活动指示器在WKWebView加载完成后不会停止旋转

活动指示器是一种用户界面组件,用于显示应用程序正在进行某个任务的指示。在iOS开发中,WKWebView是一种用于展示网页内容的视图控件,而活动指示器通常用于显示网页加载的状态。

当使用WKWebView加载网页时,活动指示器通常会在网页加载过程中旋转,以提示用户当前网页正在加载。但有时候,当网页加载完成后,活动指示器可能没有自动停止旋转,而是继续显示旋转状态,给用户一种错误的印象。

要解决这个问题,可以在WKWebView的代理方法中手动停止活动指示器的旋转。首先,设置WKWebView的代理对象,然后实现WKNavigationDelegate协议中的相应方法。以下是一个示例:

代码语言:txt
复制
import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    var webView: WKWebView!
    var activityIndicator: UIActivityIndicatorView!

    override func viewDidLoad() {
        super.viewDidLoad()

        webView = WKWebView(frame: view.bounds)
        webView.navigationDelegate = self
        view.addSubview(webView)

        activityIndicator = UIActivityIndicatorView(style: .gray)
        activityIndicator.center = view.center
        view.addSubview(activityIndicator)
        
        let url = URL(string: "https://www.example.com")
        let request = URLRequest(url: url!)
        webView.load(request)
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        activityIndicator.stopAnimating()
    }
}

在上述代码中,我们首先创建了一个WKWebView实例,并设置其代理为当前视图控制器。然后,在视图控制器的viewDidLoad方法中,我们将WKWebView添加到当前视图中,并创建了一个UIActivityIndicatorView作为活动指示器,并将其添加到视图中心。

接下来,在WKWebView加载完成后,通过实现WKNavigationDelegate协议中的didFinish方法,我们调用activityIndicator的stopAnimating方法,以停止活动指示器的旋转。

此外,值得一提的是,腾讯云提供了一系列与云计算相关的产品和服务。具体到WKWebView加载完成后不会停止旋转的问题,可以参考腾讯云提供的WebView开发相关产品,例如 "腾讯云 X5内核 WebView SDK",它提供了更加稳定、高效的WebView内核,可以解决一些原生WKWebView所存在的问题。你可以通过访问腾讯云官网了解更多详情:https://cloud.tencent.com/product/x5

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

相关·内容

WKWebView详解

您可以使用WKWebView类来应用程序中嵌入web内容,通过创建一个WKWebView对象,将其设置为视图,并发送一个请求来加载web内容。...)从0.0到1.0不等 页面加载完成后,估算的进度保持1.0,直到新的导航开始,这时估算的进度重置为0.0 支持KVO 是否页面内的所有资源都是通过安全链接加载的 @property(nonatomic...将任务标记为成功完成 - (void)didFinish; 如果你尝试发送response之前或者任务已经结束之后调用该方法,将会触发异常 如果在任务已经停止加载后调用,将会触发异常 把任务标记为失败...:(NSError *)error; 当前页面加载完成后触发 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation...WKBackForwardList对象仅仅维护的是列表数据,并不会执行任何实际的网页加载的操作,不会产生任何客户请求。如果你需要产生一次页面加载,请使用loadRequest: 这些方法。

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

    是否可以前进一页 goBack: 返回上一页 goForward: 前进一页 eload: 根据当前URL刷新页面 reloadFromOrigin: 根据最初 URL 刷新页面 stopLoading: 停止加载...移除所有用户脚本 removeAllUserScripts 如果注入时机为在网页渲染前,那么网页加载完毕后执行移除脚本操作,则脚本的运算结果并不会受影响,但是在网页加载完毕前移除脚本的后,脚本将不会执行...存储 WKWebsiteDataStore 以下情况中,WKWebView 主动发送请求时不会携带 cookie。...Ajax 请求不会带上 Response 中 Set-Cookie 的值 302 跳转不会带上 Response 中 Set-Cookie 的值 可以使用 iOS11 的新 API 对 WKWebView...didCommitNavigation,网络请求加载完成后执行。

    4.9K30

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...库加载并使用, UIWebView 中限制了; WKWebView 目前缺少关于页码相关的 API; WKWebView 提供加载网页进度的属性; WKWebView 使用 Safari 相同的 JavaScript...9. goBack API问题 WKWebView 上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload() 函数、不会执行JS。 10....而在客户端中,客户端需要先花费时间初始化 WebView 完成后,才开始加载。 而这段时间,由于WebView还不存在,所有后续的过程是完全阻塞的。...软件包(下载链接:DebugGap),下载完成后解压下来。

    3.1K00

    网易严选的wkwebview测试之路

    WKWebView网页加载速度大有提升,占用更少内存。   ...  以前UIWebView会自动去NSHTTPCookieStorage中读取cookie,但是WKWebView不会去读取,因此导致cookie丢失以及一系列问题,测试的过程中我们发现在一个活动页面触发了登录之后...从上图可以看出,app进行登录后,福利社的webview并没有同步获取相应的登录态,究其原因,主要原因是:WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于...开发大大排查之后发现是wkwebview加载的方法变了(wkwebview不支持用loadRequest的方法加载本地的静态HTML),要替换不同的方法来加载,修复之后的效果 3、wkwebview...(浏览首页及其他页面,查看商品详情及评论图片,浏览活动及专题页面,登录查看购物车及下单等等),对比统计了内存的消耗占比。

    1.7K10

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...WKWebView 白屏问题 WKWebView 实际上是个多进程组件,这也是它加载速度更快,内存暂用更低的原因。...WKWebView Cookie 问题 WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie,而在...9. goBack API问题 WKWebView 上调用 -[WKWebViewgoBack], 回退到上一个页面后不会触发 window.onload() 函数、不会执行JS。 10....而在客户端中,客户端需要先花费时间初始化 WebView 完成后,才开始加载。 而这段时间,由于WebView还不存在,所有后续的过程是完全阻塞的。

    2.3K20

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...WKWebView 白屏问题 WKWebView 实际上是个多进程组件,这也是它加载速度更快,内存暂用更低的原因。...WKWebView Cookie 问题 WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie,...9. goBack API问题 WKWebView 上调用 -[WKWebViewgoBack], 回退到上一个页面后不会触发 window.onload() 函数、不会执行JS。 10....而在客户端中,客户端需要先花费时间初始化 WebView 完成后,才开始加载。 而这段时间,由于WebView还不存在,所有后续的过程是完全阻塞的。

    2.7K20

    iOS中WebKit框架应用与解析 原

    iOS中WebKit框架应用与解析 一、引言         iOS8之前,应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过URL或者HTML文件来加载网页视图,功能十分有限,只能作为辅助嵌入原生应用程序中...WKNavigationDelegate:网页跳转间的导航管理协议,这个协议可以监听网页的活动。 WKNavigationAction:网页某个活动的示例化对象。...//刷新网页 - (nullable WKNavigation *)reload; //忽略缓存的刷新 - (nullable WKNavigation *)reloadFromOrigin; //停止加载...{ } //主页加载完成时调用 -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{...:(NSError *)error{ } //主页数据加载发生错误时调用 -(void)webView:(WKWebView *)webView didFailProvisionalNavigation

    1.9K40

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

    不过苹果在 iOS8 以后推出了 WKWebView加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,两个平台上支持同一套 API。...WKWebView 白屏问题 WKWebView 实际上是个多进程组件,这也是它加载速度更快,内存暂用更低的原因。...WKWebView Cookie 问题 WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie,而在...9. goBack API问题 WKWebView 上调用 -[WKWebViewgoBack], 回退到上一个页面后不会触发 window.onload() 函数、不会执行JS。 10....而在客户端中,客户端需要先花费时间初始化 WebView 完成后,才开始加载。 而这段时间,由于WebView还不存在,所有后续的过程是完全阻塞的。

    2.3K30

    最新iOS设计规范五|3大界面要素:控件(Controls)

    使用活动指示器和进度条可以使人们知道您的应用没有停止,并让他们知道他们要等待多长时间。 活动加载指示(Activity Indicators) 就是通常我们讲的转菊花。...当执行无法量化的任务(例如加载或同步复杂数据)时,加载器会旋转。任务完成后它会消失。活动加载器是不是可交互元素。 ? 进度条优于加载器。...让它旋转,让用户知道正在发生的事情。 如果有帮助,请在用户等待任务完成时为其提供有用的提示信息。可以加载器上方添加标签以提供额外的上下文信息。...iOS 12及更早版本中,以及全面屏显示的设备上,网络活动指示器会在发生联网时屏幕顶部的状态栏中旋转,联网完成后消失。和活动加载指示器样式一样,并且是非交互式的。 ?...刷新控件是活动加载指示器的一种特殊类型,默认情况下处于隐藏状态,并在向下拖动要重新加载的视图时可见。例如,“邮件”中,您可以将“收件箱”邮件列表向下拖动以检查是否有新邮件。 ? 执行自动内容更新。

    8.6K30

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    活动指示器表明任务或进程正在进行中,如下图所示。...活动指示器: 当任务进行和加载旋转,任务完成后自动消失 不支持用户交互行为 工具栏或主视图中使用活动指示器来告知用户任务或加载正在进行中,但并不提示该过程何时会结束。 不要使用静止的活动指示器。...用活动指示器来让用户知道进程仍在进行中。有些时候,告诉用户进程没有停止比告诉他们何时完成更加重要。 设计一个与应用的风格协调的活动指示器。可以的话,让活动指示器的尺寸和颜色与它所在的背景协调。...4.3.7 网络活动指示器 网络活动指示器状态栏中出现,表示网络活动正在进行。 ?...网络活动指示器: 出现在状态栏中,当网络活动正在进行时它会旋转活动停止时它则消失 不支持用户交互行为 当你的app正在链接网络,而这个连接过程将会持续好几秒的时候,你可以通过网络活动指示器来给用户以反馈

    13.2K30

    iOS WebView 的 Hybrid 框架设计

    设计这套框架之前,需要弄清楚 Native 与前端的分工,Native 主要提供一个宿主环境,对 WebView 进行封装,提供 Bridge 方法,Header 组件设计,账号信息设计,底层提供预加载和缓存机制...本套框架的预加载和缓存模块儿需要借助 NSURLProtocol 实现,所以这里还是优先使用 UIWebView(想吐个槽,其实如果预加载和缓存这套系统做好以后,UIWebView 的效果并没不比 WKWebView...差),这里也不能把 WKWebView 一棒子打死不用,对于那些对无需预加载和缓存的页面,可以为前端提供参数(比如 wkwebview=true)让前端自己的去选择是否使用 WKWebView,所以这里需要对...WebViewJavascriptBridge是一个不错的JavaScript与Native之间双向通信的库,多个厂家包括Facebook使用,并且新的版本开始支持WKWebView,对了解Native...② Title 通常在 WebView 加载完成后去获取 document.title 来显示,这里可以做到可配置。

    1.7K10

    AFNetworking源码探究(十八) —— UIKit相关之AFNetworkActivityIndicatorManager

    可以看见还是很多关于UIKit的类,都是原类上的扩展。下面我们就看一下这几个相关的类。...---- AFNetworkActivityIndicatorManager 这个就是网络请求时候上面旋转的小菊花。 1....启用后,它将侦听指示会话任务已启动或完成的通知,并相应地启动或停止指示器进行动画处理。 活动请求的数量增加和减少很像堆栈或信号量,只要该数量大于零,活动指示器就会动画。...] setEnabled:YES]; 通过为sharedManager设置enabled为YES,当请求开始和结束时,网络活动指示器将自动显示并隐藏。...活动请求的数量增加和减少很像堆栈或信号量,只要该数量大于零,活动指示器就会动画。 下面看一下活动指示器活动请求数量的增加还是减少数量的计算。

    70650

    《iOS Human Interface Guidelines》——Table View表视图

    当用户导航回前一个界面时,之前选中的行会再次简短地高亮来提醒用户之前的选择(它不会持续高亮)。 iOS包含一些可以扩展表视图功能的表视图元素。除非特别注明,这些元素只适合用在表视图中。...Value 2的布局中,文本间清爽的垂直边缘帮助用户专注于详细文本的第一个单词。 NOTE 所有四个标准表单元格风格都允许额外的表视图元素,比如勾选符号和扩展指示器。...如果数据加载的很慢或很复杂,告诉用户处理仍在继续。如果一个表只包含复杂数据,也许很难立即显示有用的数据。在这种情况下,避免显示空行很重要,因为空行表示你的app停止了。...表应该在屏幕中间显示一个旋转活动指示器,伴随着信息文本(比如“加载中...”)。这个行为可以使用户安心。 合适的话,给删除按钮使用一个自定义的标题。...不要将索引和显示表右边界的表视图元素结合在一起。显示表右边界的表视图元素——比如扩展指示器——会干扰到索引。 如果你想要用非标准的方式布局你的表单元格,创建自定义的单元格风格。

    2.4K20

    OS X开发:NSProgressIndicator进度指示器控件

    OS X开发:NSProgressIndicator进度指示器控件     NSProgressIndicator是OS X平台上的活动指示器控件,开发者可以设置圆环样式和进度条样式两种。...progressIndicator.doubleValue = 5; //设置风格 progressIndicator.style = NSProgressIndicatorBarStyle; //设置是否当动画停止时隐藏...NSProgressIndicator类中属性方法解析如下: //设置是否是模糊模式 牧户模式下,不显示具体的进度,通过动画提示用户正在加载 @property (getter=isIndeterminate...incrementBy:(double)delta; //进度条最小值 @property double minValue; //进度条最大值 @property double maxValue; //是否多线程中执行动画...NSProgressIndicatorSpinningStyle = 1 //风火轮风格 }; */ @property NSProgressIndicatorStyle style; //设置动画停止时进度条是否依然显示

    1.5K10

    解决WKWebView不显示H5中引用的Library本地图片问题

    问题:由UIWebView切WKWebView后,HTML加载本地HTMLString时,图片无法显示。...WKWebView加强了安全性,不再允许跨域访问,所有跨域地址都失效了,包括不再同一文件夹下的CSS、JS等文件引用。...2、移动图片存储到tmp中,加载本地Html时设置BaseURL即可(tmp会被定期清理,且无法兼容老版本,弃) 3、启动一个本地服务器,拥有一个读取沙盒的权利(推荐使用) 前面两种就不说了,直接说第三种...cacheAge:3600 allowRangeRequests:YES]; [self.webSever startWithPort:80 bonjourName:nil]; } 处理...localhost" withString:@"http://localhost"]; } } 关闭服务器(如果你需要单页面开启的话) - (void)dealloc { //停止本地服务

    1.2K20

    iOS新闻类App内容页技术探索

    反观WKWebView,基于独立进程,不会占用App的内存计算,同时也不会导致主App Crash。所以系统级的稳定性上,WKWebView有着极大的优势。...浏览内容页这种场景下, HybridPageKit 中通过WKWebView的复用回收以及资源缓存,极大降低了WKWebView加载渲染HTML的时间,使之低于原生UIWebView。...自动回收 & 内存管理 WebView及组件View实现自动回收逻辑,每次申请新View时检测活动队列中View的SuperView是否为nil,是则自动回收防止内存泄露,同时增加View最大数量阈值...删除组件完全无需操作内容页,删除独立的MVC结构并停止注册即可。 2. 易于扩展内容页类型 为了实现内容页扩展区的灵活复用, HybridPageKit 中也扩展了非WebView类型的内容页。...同时由于WKWebView支持复用回收,加载本地Html类型的WebView应该与加载H5的WebView不同的回收复用池分开管理。

    2.9K00
    领券