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

当UIWebView加载完Ajax时获取回调

,可以通过以下步骤实现:

  1. 首先,需要在UIWebView的代理方法中监听页面加载完成的事件。可以使用UIWebViewDelegate中的方法webViewDidFinishLoad:来实现。该方法会在页面加载完成后被调用。
  2. webViewDidFinishLoad:方法中,可以通过JavaScript来获取页面中的回调信息。可以使用stringByEvaluatingJavaScriptFromString:方法执行JavaScript代码,并将结果返回给Objective-C。
  3. 在JavaScript中,可以通过监听Ajax请求的状态来获取回调信息。可以使用XMLHttpRequest对象的onreadystatechange事件来监听请求状态的变化。当请求状态变为4(即请求完成)时,可以获取到请求的响应数据。
  4. 在获取到回调信息后,可以将其传递给Objective-C端进行处理。可以使用stringByEvaluatingJavaScriptFromString:方法将回调信息传递给Objective-C。

以下是一个示例代码:

代码语言:txt
复制
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *ajaxCallback = @"function getAjaxCallback() { return 'Ajax callback data'; }";
    [webView stringByEvaluatingJavaScriptFromString:ajaxCallback];
    
    NSString *callbackData = [webView stringByEvaluatingJavaScriptFromString:@"getAjaxCallback();"];
    NSLog(@"Ajax callback data: %@", callbackData);
}

在上述示例中,首先定义了一个JavaScript函数getAjaxCallback(),该函数返回了一个固定的回调数据。然后通过stringByEvaluatingJavaScriptFromString:方法执行该JavaScript代码。

接着,通过stringByEvaluatingJavaScriptFromString:方法调用getAjaxCallback()函数获取回调数据,并将其打印输出。

需要注意的是,上述示例中的回调数据是固定的,实际应用中可以根据具体情况修改JavaScript代码来获取真实的回调数据。

对于UIWebView加载完Ajax时获取回调的应用场景,可以是在需要获取动态数据的页面中,通过监听Ajax请求的完成事件来获取最新的数据,并进行相应的处理,例如更新UI界面或执行其他操作。

推荐的腾讯云相关产品:腾讯云移动浏览器(Tencent Mobile Browser)。腾讯云移动浏览器是一款基于WebKit内核的移动浏览器,支持多种前端开发技术和功能扩展,可以满足移动应用开发中对于UIWebView加载Ajax时获取回调的需求。详情请参考腾讯云移动浏览器官方介绍:腾讯云移动浏览器

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

相关·内容

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

2.1.1实现机制 Hybrid框架下的app,使用的Ajax,需要注意的是UIWebViewDelegate不会监测到Ajax的request,也就是再执行Ajax代码,shouldStartLoadWithReuqest...其解决方法需要Javascript和navtive code一起来做,其基本原理可参考这片文章,其流程是在Javascript handler中每创建Ajax的请求,需要将这段js存在ajax_handler.js...部分内容参考于stackoverflow 2.1.4UIWebView载入带有锚点(anchor)的URL存在的问题及解决办法 UIWebView载入带有锚点(anchor)的URL存在的问题及解决办法...,页面高度超过屏幕高度,如果页面顶部和初始加载的位置不同(进行过滚动),则每次添加高亮,页面就重新跳到初始加载的位置,而不是保持当前位置。...PS:如果UIWebView加载的URL不带锚点,是不会出现上述问题的。

91840

【IOS开发基础系列】UIWebView专题

,也就是再执行Ajax代码,shouldStartLoadWithReuqest等方法并不会被调用。         ...其解决方法需要Javascript和navtive code一起来做,其基本原理可参考这片文章,其流程是在Javascript handler中每创建Ajax的请求,需要将这段js存在ajax_handler.js...部分内容参考于stackoverflow 2.1.4 UIWebView载入带有锚点(anchor)的URL存在的问题及解决办法 UIWebView 载入带有锚点(anchor)的URL存在的问题及解决办法...方法在网页中为选中文字创建高亮标签,页面高度超过屏幕高度,如果页面顶部和初始加载的位置不同(进行过滚动),则每次添加高亮,页面就重新跳到初始加载的位置,而不是保持当前位置。         ...PS:如果UIWebView加载的URL不带锚点,是不会出现上述问题的。

33730

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

*)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如加载百度的主页 UIWebView * view = [[UIWebView...默认情况下UIWebView加载HTML页面后,会以页面的原始大小进行显示,亦即如果页面的大小超出UIWebView视口大小,UIWebView会出现滚动效果,而且用户只能通过滚动页面来查看不同区域的内容...= [webView stringByEvaluatingJavaScriptFromString:js]; NSLog(@"%@",result); // 结果 : 20 字符串类型 (2)当我们...更加接近native(原生) 某些情况下,我们既想要UIWebView加载web页面,又想使得所加载的页面的外观和操作行为更加接近native感觉。...IOS中,当你长按一个触控对象,如链接,safari会弹出包含链接信息的菜单。

1.5K60

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

参考文章:《UIWebView与WKWebView》 UIWebView 是苹果继承于 UIView 封装的一个加载 web 内容的类,它可以加载任何远端的web数据展示在你的页面上,你可以像浏览器一样前进后退刷新等操作...解决办法: 借助 WKNavigtionDelegate WKWebView 总体内存占用过大,页面即将白屏的时候,系统会调用上面的回函数,我们在该函数里执行[webView reload]...全局 WebView 在客户端刚启动,就初始化一个全局的 WebView 待用,并隐藏,当用户访问了 WebView ,直接使用这个 WebView 加载对应网页,并展示。... 调试项目的加载,您的应用程序将会有一个蓝色的地方,点击会出现一个四叶三叶草的东西...; break on Attributes modifications 选项,是指节点属性发生变化时断点; break on node removal 选项,是指节点被移除断点

3.1K00

jQuery ajax - ajax()方法

简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。 使用 AJAX 的应用程序案例:谷歌地图、腾讯微博、优酷视频、人人网等等。...jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法。 load() 方法从服务器加载数据,并把返回的数据放入被选元素中。...回函数可以设置不同的参数: responseTxt - 包含调用成功的结果内容 statusTXT - 包含调用的状态 xhr - 包含 XMLHttpRequest 对象 下面的例子会在 load...第二个参数是回函数。第一个回参数存有被请求页面的内容,第二个回参数存有请求的状态。...第三个参数是回函数。第一个回参数存有被请求页面的内容,而第二个参数存有请求的状态。

9.4K20

iOS WebView 的 Hybrid 框架设计

Hybrid APP 框架 一个完整的 Hybrid APP 框架主要包括 WebView 容器、Bridge、UI、预加载、缓存等模块儿,当然 Bridge、预加载、缓存等也需要相应前后端的支持,比如发布平台...本文主要对 WebView、Bridge、Header 设计进行介绍,后续文章会对账号信息设计、预加载和缓存进行持续跟进。...本套框架的预加载和缓存模块儿需要借助 NSURLProtocol 实现,所以这里还是优先使用 UIWebView(想吐个槽,其实如果预加载和缓存这套系统做好以后,UIWebView 的效果并没不比 WKWebView...YZWebViewDelegate,UIWebView 和 WKWebView 代理的回代理。...该请求可以被 webView:shouldStartLoadWithRequest:request navigationType: 方法捕获,从而执行相应的操作,但是属于异步操作;还有一种前端可以通过 Ajax

1.6K10

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

解决办法: 借助 WKNavigtionDelegate WKWebView 总体内存占用过大,页面即将白屏的时候,系统会调用上面的回函数,我们在该函数里执行 [webView reload](这个时候...于是我们找到了“为什么WebView总是很慢”的原因之一: 在浏览器中,我们输入地址(甚至在之前),浏览器就可以开始加载页面。...全局 WebView 在客户端刚启动,就初始化一个全局的 WebView 待用,并隐藏,当用户访问了 WebView ,直接使用这个 WebView 加载对应网页,并展示。... 调试项目的加载,您的应用程序将会有一个蓝色的地方,点击会出现一个四叶三叶草的东西...选项,是指节点属性发生变化时断点; node removal 选项,是指节点被移除断点; 2. console 调试 参考文章:[《Console调试常用用法》] (https://blog.csdn.net

2.3K30

UI篇- UIWebView使用大全

加载百度编译器编辑的HTML文本 ******** 使用UIWebView 加载 HTML图文文本 ********* //self.newsM.content为网络返回的原始图文信息。...根据导航类型参数可以得到请求发起的原因 //网页视图被指示载入内容而得到通知应该返回是,这样会进行加载通过导航类型参数可以得到请求发起的原因,可以是以下任意值: - (BOOL)webView:(UIWebView...有两种方式可根据加载内容 获取UIWebView的合适高度,但都需要在网页内容加载完成后才可以,即需要在webViewDidFinishLoad回中使用。...web的这个回方法。...UIWebView在 iOS11中的使用。 ? UIWebView 在iOS 11上 顶部的 y值设为 0 ,是依然无法盖住UIStatusBar区域的,但是滚动就会出现问题了。

1.9K10

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

参考文章:[《UIWebView与WKWebView》] (http://www.cocoachina.com/articles/17337) UIWebView 是苹果继承于 UIView 封装的一个加载...解决办法: 借助 WKNavigtionDelegate WKWebView 总体内存占用过大,页面即将白屏的时候,系统会调用上面的回函数,我们在该函数里执行 [webView reload]...全局 WebView 在客户端刚启动,就初始化一个全局的 WebView 待用,并隐藏,当用户访问了 WebView ,直接使用这个 WebView 加载对应网页,并展示。... 调试项目的加载,您的应用程序将会有一个蓝色的地方,点击会出现一个四叶三叶草的东西...选项,是指节点属性发生变化时断点; node removal 选项,是指节点被移除断点; 2. console 调试 参考文章:[《Console调试常用用法》] (https://blog.csdn.net

2.7K20

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

解决办法: 借助 WKNavigtionDelegate WKWebView 总体内存占用过大,页面即将白屏的时候,系统会调用上面的回函数,我们在该函数里执行 [webView reload](这个时候...于是我们找到了“为什么WebView总是很慢”的原因之一: 在浏览器中,我们输入地址(甚至在之前),浏览器就可以开始加载页面。...全局 WebView 在客户端刚启动,就初始化一个全局的 WebView 待用,并隐藏,当用户访问了 WebView ,直接使用这个 WebView 加载对应网页,并展示。... 调试项目的加载,您的应用程序将会有一个蓝色的地方,点击会出现一个四叶三叶草的东西...选项,是指节点属性发生变化时断点; node removal 选项,是指节点被移除断点; 2. console 调试 参考文章:[《Console调试常用用法》] (https://blog.csdn.net

2.3K20

JavaWeb全栈开发前后端交互通用标准

这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 XMLHttpRequest 是 AJAX 的基础。所有现代浏览器均支持 XMLHttpRequest 对象。...通过 AJAX,JavaScript 无需等待服务器的响应,而是: 在等待服务器响应时执行其他脚本 响应就绪后对响应进行处理 Web的运作原理:一次HTTP请求对应一个页面。...例子:通过 AJAX 加载一段文本 jQuery 代码: $(document).ready(function(){ $("#b01").click(function(){ htmlobj...回函数可以设置不同的参数: - responseTxt : 包含调用成功的结果内容 - statusTXT : 包含调用的状态 - xhr : 包含 XMLHttpRequest 对象 例子:在...例子:使用 .get() 方法从服务器上的一个文件中取回数据: /* $.get() 的第一个参数是我们希望请求的 URL("demo_test.asp")。 第二个参数是回函数。

7.8K20

React Native iOS 剖析 WebView && 解决 Error loading page Domain: WebKitErrorDomain Error Code: 101 The U

:(__unused UIWebView *)webView didFailLoadWithError:(NSError *)error WebView 加载出现异常的时候,会进入此回,供我们处理错误...等等 出现此种错误的情况与原因 出现错误的原因 WebView 处理一个请求,首先会进入 - (BOOL)webView:(__unused UIWebView *)webView shouldStartLoadWithRequest...:(NSError *)error 的回,即便出错了也不会有任何表现 言归正传: 出现这个错误的原因就是 WebView 加载了其实它无法处理的请求(URL)。...解决方法 解决方法 一 正如前面所说,存在不合法的URL请求,会进入 “错误回” - (BOOL)webView:(__unused UIWebView *)webView shouldStartLoadWithRequest...经过实践和源码分析: iOS 中webView 回 - (BOOL)webView:(__unused UIWebView *)webView shouldStartLoadWithRequest

4K30

iOS中WebKit框架应用与解析 原

iOS中WebKit框架应用与解析 一、引言         在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过URL或者HTML文件来加载网页视图,功能十分有限,只能作为辅助嵌入原生应用程序中...虽然UIWebView也可以做原生与JavaScript交互的相关处理,然而也有很大的局限性,JavaScript要调用原生方法通常需要约定好协议之后通过Request来传递。...关于UIWebView的相关使用,在前面的博客中有详细介绍,地址如下。 UIWebView的使用详解:http://my.oschina.net/u/2340880/blog/469916。...//进行偏好设置 WKPreferences * preference = [[WKPreferences alloc]init]; //最小字体大小 将javaScriptEnabled...WKBackForwardListItem *backItem; //获取某个index的网页节点 - (nullable WKBackForwardListItem *)itemAtIndex:(NSInteger)index; //获取回退的节点数组

1.9K40

jQuery - AJAX详解笔记

简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。 ? 关于 jQuery 与 AJAX jQuery 提供多个与 AJAX 有关的方法。...load() 方法从服务器加载数据,并把返回的数据放入被选元素中 $(“”).load(URL,data,callback); 必需的 URL 参数规定您希望加载的 URL。...GET - 从指定的资源请求数据 POST - 向指定的资源提交要处理的数据 GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。 POST 也可用于从服务器获取数据。...contentType: "application/json;charset=UTF-8", //定义发送请求的数据格式为JSON字符串 dataType: "json", //定义回响应的数据格式为...error: function (xhr,status,error) { } }); ---- 版权属于:尹深 本文链接:https://www.79xj.cn/189.html 转载须注明出处及本声明

65720
领券