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

在swift中未调用UIWebView webViewDidStartLoad方法

在Swift中,未调用UIWebView的webViewDidStartLoad方法可能是由于以下几种情况:

  1. 未正确设置UIWebView的代理:在使用UIWebView时,需要设置其代理对象,并确保代理对象实现了UIWebViewDelegate协议。在代理对象中,可以实现webViewDidStartLoad方法来监听webView开始加载的事件。如果未设置代理或代理对象未实现该方法,就无法调用webViewDidStartLoad。
  2. UIWebView加载的网页内容为空:如果UIWebView加载的网页内容为空,即没有有效的URL或HTML内容,那么webViewDidStartLoad方法也不会被调用。在加载网页之前,可以先检查URL或HTML内容是否有效。
  3. UIWebView加载的网页已经完成:如果UIWebView加载的网页已经完成,即已经调用了webViewDidFinishLoad方法,那么webViewDidStartLoad方法也不会被调用。可以在webViewDidFinishLoad方法中添加一些逻辑来判断是否需要调用webViewDidStartLoad方法。
  4. UIWebView加载的网页发生错误:如果UIWebView加载的网页发生错误,即调用了webViewDidFailLoadWithError方法,那么webViewDidStartLoad方法也不会被调用。可以在webViewDidFailLoadWithError方法中处理错误,并判断是否需要调用webViewDidStartLoad方法。

总结起来,未调用UIWebView的webViewDidStartLoad方法可能是由于代理未设置、网页内容为空、网页已完成或发生错误等原因。需要检查这些情况,并相应地处理。

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

相关·内容

IOS JavaScriptCore 跳转失去对象和一些BUG总结

①  webViewDidStartLoad注入    现象: UIWebViewwebViewDidStartLoad阶段创建JSContext并暴露oc端的方法加载一级页面时js正常调用...oc的方法,而跳转到二级页面却无法执行oc的方法;而在webViewDidStartLoad阶段由于并未加载完js文件, 因此js层定义的函数oc端无法执行。    ...②webVIewDidFinishLoad创建    现象:由于加载js阶段webVIewDidFinishLoad阶段之前,因此一级页面js无法调用oc方法,但是二级页面同理也是如此   原因...: 如果JS的调用OC的方法,也就是webview加载之前那就掉不起来。...js的异步代码,通过这种方式可以完成js调用oc方法; 或者JS设置一个监听监听OC是否加载完成,如果完成就调用方法

77130

AFNetworking源码探究(二十三) —— UIKit相关之UIWebView+AFNetworking分类(六)

这一篇就继续讲述AFNUIWebView的分类。 ---- 接口API 我们看一下UIWebView分类的API接口。...该类为UIKit框架的UIWebView类添加方法。 此类别方法可以更好地控制请求周期,包括进度监视和成功/失败处理。...NSData *data))success failure:(nullable void (^)(NSError *error))failure; 其实看一下源码就知道,上面方法是通过调用下面的方法实现的...:)]) { [self.delegate webViewDidStartLoad:self]; } 这里如果传入的进度参数progress不为nil,那么就调用方法获得进度参数。...后记 本篇主要讲述AFNUIWebView的分类,详细的分析了指定request和指定MIME类型和编码的request下的请求。

38720

IOS隐藏键盘

最近遇到二个键盘会自动弹出的问题: 1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起; 2、调用选择照片时,iPod上选择照片后也会自动弹出键盘,比如从图库进到具体某个文件夹内...,或者再返回图库,直接点中照片然后编辑的时候,都会自动弹出; 问题一是这样处理的 - (void)webViewDidStartLoad:(UIWebView*)webView {     [activityIndicatorView...    [alterview show];     [alterview release]; } 网页开始加载或加载结束时关闭键盘并发送关闭键盘的事件,如果webViewDidFinishLoad()不被调用是因为...,导航切换的时候隐藏键盘并发送关闭键盘的事件 -(void)navigationController:(UINavigationController *)navigationController willShowViewController...sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } 因为接触ios也不算特别多,暂时就使用了上述的方法来处理了

1.3K20

iOS引入JavaScriptCore引擎框架(一)

我做过一个测试:首先在UIWebViewwebViewDidStartLoad阶段创建JSContext并暴露oc端的方法加载一级页面时js正常调用oc的方法,而跳转到二级页面却无法执行oc的方法...;而在webViewDidStartLoad阶段由于并未加载完js文件, 因此js层定义的函数oc端无法执行。     ...其次,webVIewDidFinishLoad阶段创建JSContext并透出oc方法,由于加载js阶段webVIewDidFinishLoad阶段之前,因此一级页面js无法调用oc方法,但是二级页面同理也是如此...,但是由于js代码是iOS的UI线程执行,因此为了让js可以调用oc方法,可以通过js设置setTimeout来让任务放到执行队列的末端,先执行oc层的webVIewDidFinishLoad方法,...待任务完成后再执行js的异步代码,通过这种方式可以完成js调用oc方法;反过来,oc层调用js函数没有任何问题,因为webVIewDidFinishLoad阶段js代码已执行完毕(除了异步代码)。

1.5K60

iOS学习巩固笔记-UIWebViewJavaScript

的加载过程 成为UIWebView的代理,遵守UIWebViewDelegate协议,就能监听UIWebView的加载过程 - (void)webViewDidStartLoad:(UIWebView...)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error; UIWebView发送请求之前,都会调用这个方法,如果返回NO...每当将加载请求的时候调用方法,返回YES 表示加载该请求,返回NO 表示不加载该请求 //可以方法拦截请求 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest...:(UIWebView *)webView //网页加载完毕之后会调用方法 -(void)webViewDidFinishLoad:(UIWebView *)webView //网页加载失败调用方法...N多参数的一个类) iOS可以直接调用某个对象的消息方式有两种: performSelector:withObject; NSInvocation。

1.2K70

android onresume函数,android – Activity重新创建后调用onResume

应用程序设置中进行某些更改时,我recreate的onActivityResult调用MainActivity。重新创建后,不调用onResume。...我也收到错误:E/ActivityThread: Performing pause of activity that is not resumed 从this问题开始,我了解到不能从onResume调用此函数...另外,使用处理程序来调用recreate可以解决问题,但会导致眨眼,对用户而言很糟糕。这可能是什么错误?没有recreate的情况下如何使用Handler? 任何想法将不胜感激。谢谢!...最佳答案 onResume()之前调用OnActivityResult()。...您可以做的是OnActivityResult()设置一个标志,您可以onResume()检入,如果该标志为true,则可以重新创建活动。

3.3K20

iOSUIWebView的使用详解 原

iOSUIWebView的使用详解 一、初始化与三种加载方式      UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种...设置每一页的间距 @property (nonatomic, readonly) NSUInteger pageCount NS_AVAILABLE_IOS(7_0); 获取分页数 四、webView协议方法...:(UIWebViewNavigationType)navigationType; 准备加载内容时调用方法,通过返回值来进行是否加载的设置 - (void)webViewDidStartLoad:(UIWebView...*)webView; 开始加载时调用方法 - (void)webViewDidFinishLoad:(UIWebView *)webView; 结束加载时调用方法 - (void)webView:...(UIWebView *)webView didFailLoadWithError:(NSError *)error; 加载失败时调用方法 专注技术,热爱生活,交流技术,也做朋友。

73020

iOS引入JavaScriptCore引擎框架(二)

方法,虽然通过KVC可达到目标,但是当APP采用该种hack方法时,有很大几率不能通过APP Store的审核,这对于一个基于上线的商业APP而言是难以忍受的,所以我们必须寻找另一种方法来获取UIWebView...Nick的发现     iOS,尽管没有暴露WebFrameLoadDelegate,但是具体实现上仍会判断WebKit的implement有没有实现这个协议的某些方法,如果实现则仍会执行,而且...由于所有的OC对象都继承自NSObject对象,因此我们可以NSObject对象上实现该方法,这样可以保证该段代码可以webkit框架执行。     ...在此处有一个简单的方法,就是获取所有的UIWebView对象,每个对象执行一段js代码,js上下文设置一个变量做为标记,然后我们获取的JSContext判断该变量是否与遍历的UIWebVIew...这样,我们可以UIWebViewwebViewDidStartLoad和webViewDidFinishLoad之间获取到JSContext,进行oc和js的双向通信。

1.5K40

IOS开发系列——UIWebView专题【整理,部分原创】

Hybrid框架下的app,使用的Ajax,需要注意的是UIWebViewDelegate不会监测到Ajax的request,也就是再执行Ajax代码时,shouldStartLoadWithReuqest等方法并不会被调用...其解决方法需要Javascript和navtive code一起来做,其基本原理可参考这片文章,其流程是Javascript handler每创建Ajax的请求时,需要将这段js存在ajax_handler.js...UIWebView加载带有锚点的URL(如"file:///Users/admin/home.html#pos"),程序使用javascript的range.surroundContents方法在网页为选中文字创建高亮标签...PC浏览器上尝试并没有出现这种问题,因此猜测是可能是UIWebView自身的原因。...方案二:shouldStartLoadWithRequest方法中进行url相等判断,然后对于#号url进行延迟执行loadNavigationTitle的处理: - (BOOL)webView:(

88040

UIWebView 浏览器控件一、初始化与三种加载方式二、常用属性和方法三、代理方法 UIWebViewDelegate四、其它案例:

代理方法OC执行JS代码的桥梁 - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString*)script; 返回值:执行完JS...UIWebViewDelegate 1.每当webView发送一个请求之前都会先调用这个方法,监听准备加载内容时调用,通过判断请求等参数来返回不同返回值判断是否加载该网页,是JS执行OC代码的桥梁...WebView上 2.开始加载时调用方法 - (void)webViewDidStartLoad:(UIWebView *)webView; 3.网页加载完毕执行的方法,一般在里面执行JS代码(删除一些节点...stringByEvaluatingJavaScriptFromString:js];} 补充:用JS删除,浏览器的console调试 (1)按标签名删除 (2)按类删除 4.加载失败时调用方法...- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error; 四、其它案例: Safari打开链接地址 -

1.5K60

iOS开发----JavaScriptCore、UIWebView及WKWebView交互的那些事

分别使用 UIWebView 以及 WKWebView 实现效果如下: JavaScriptCore 类库里面有12个类(还有两个是负责导入相关类的头文件以及一个关于WebKit的宏定义);基本的交互过程...通常用法是自定义一个CustomExport : JSExport,里面将JS可以调用的属性或者方法进行暴露,JS就可以直接使用暴露的属性与方法了。...宏,可以将方法名简化,就像 Swift的 typealias以及 ObjC的 typedef。...中方法就是客户端的闭包,不过这里楼主采用了Swift和ObjC混编模式,至于原因下面会说一下: 实现方法: Swift版本如下,功能实现在本人看来应该是一样的,但在进行注入的时候出现了问题,导致执行方法出现了...UIWebViewDelegate UIWebViewDelegate 的webViewDidFinishLoad() 方法对JSContext进行截取,并执行操作: WKWebView 首先有一点

1.4K20
领券