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

iOS UIWebView Javascript - 插入数据 - 接收回调?

iOS UIWebView Javascript - 插入数据 - 接收回调

在iOS应用程序中,使用UIWebView组件可以通过JavaScript在网页中插入数据,并且可以在网页中接收回调。以下是一个简单的步骤来演示如何在iOS应用程序中使用UIWebView实现这一功能。

1.创建一个UIWebView对象并加载网页

首先,需要在Xcode中创建一个UIWebView对象,并加载一个网页。可以使用以下代码来创建和加载UIWebView:

代码语言:scss
复制
// 创建一个UIWebView对象
UIWebView *webView = [[UIWebView alloc] init];

// 加载网页
[webView loadHTMLString:@"<html><body><h1>Hello, World!</h1></body></html>" baseURL:nil];

上述代码创建了一个UIWebView对象,并加载了一个简单的网页,其中包含一个标题“Hello, World!”。

1.在网页中插入数据

接下来,可以使用JavaScript在网页中插入数据。可以使用以下代码来实现:

代码语言:javascript
复制
// 创建一个script对象
var script = document.createElement('script');

// 设置回调函数
script.onload = function() {
    console.log('数据已插入');
};

// 插入数据
script.text = 'console.log("数据已插入")';
document.body.appendChild(script);

上述代码创建了一个script对象,并设置了一个回调函数。然后,将文本“数据已插入”插入到网页中。

1.接收回调

最后,需要在网页中接收回调。可以使用以下代码来实现:

代码语言:javascript
复制
// 创建一个script对象
var script = document.createElement('script');

// 设置回调函数
script.onload = function() {
    console.log('数据已插入');
};

// 插入数据
script.text = 'console.log("数据已插入")';
document.body.appendChild(script);

上述代码创建了一个script对象,并设置了一个回调函数。然后,将文本“数据已插入”插入到网页中。

1.在iOS应用程序中接收回调

最后,需要在iOS应用程序中接收回调。可以使用以下代码来实现:

代码语言:objective-c
复制
// 创建一个UIWebView对象
UIWebView *webView = [[UIWebView alloc] init];

// 加载网页
[webView loadHTMLString:@"<html><body><h1>Hello, World!</h1></body></html>" baseURL:nil];

// 创建一个script对象
var script = document.createElement('script');

// 设置回调函数
script.onload = function() {
    console.log('数据已插入');
};

// 插入数据
script.text = 'console.log("数据已插入")';
document.body.appendChild(script);

上述代码创建了一个UIWebView对象,并加载了一个简单的网页。然后,创建了一个script对象,并设置了一个回调函数。最后,将文本“数据已插入”插入到网页中。

以上就是一个简单的步骤,演示如何在iOS应用程序中使用UIWebView实现JavaScript回调。

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

相关·内容

H5和移动端通信

JS调用iOS方法url拦截弹窗拦截(alert、confirm、prompt)JavaScriptCore(只适用于UIWebView)WKScriptMessageHandler(只适用于WKWebView...,iOS8+)Bridge第三方框架(适用于UIWebView和WKWebView)1. url拦截url拦截是在H5请求一个地址后,客户端拦截住这个地址,对地址进行解析处理H5中调用iOS方法代码:弹出登录弹窗(拦截url)iOS中拦截到url代码:- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest...WKScriptMessageHandlerWKScriptMessageHandler是一个协议,iOS中按照协议实现回方法,在回方法中可以拿到js发送的消息window.webkit.messageHandlers...JSBridgeJS桥第三方框架(1)第三方框架DSBridge(2)第三方框架WebViewJavascriptiOS调用JS方法1.  UIWebView2.  WKWebView1.

1.2K30

判断js引擎是javascriptCore或者v8

对比   1,在iOS中通过UIWebView组件的stringByEvaluateJavascriptString:(NSString *)方法来调用。...实现的bridge机制性能堪忧,交互蛋疼;     4)通过UIWebView执行js代码段,有几点限制:由于ios并未给予我们通过UIWebView访问javascript运行时的权限,因此即使通过...stringByEvaluateJavascriptString执行错误的js代码,我们在oc端仍无法获取错误消息,更无从谈起回函数;不过,这种方式的好处就是没有涉及到内存管理。   ...引擎并在js,oc两层搭建桥层,并且每层持有2份相同的配置表,每个表中都记录js,oc透出的API,并结合iOS的事件机制完成oc和js的互调;第三种则仍是采用iOS7内置的javascriptCore...下只适配iOS7以上的设备,因此我们不需要针对iOS6及以下设备做兼容(引入第三方的javascriptCore),而且通过使用内置的js引擎和oc进行通信,在c/c++层面的效率将会大大提高(相比较UIWebview

3.3K50

iOS WebView 的 Hybrid 框架设计

作为一种混合开发模式,Hybrid APP 底层依赖 Native 端的 Web 容器(UIWebview 和 WKWebview),上层使用前端 Html5、CSS、Javascript 做业务开发,...UIWebView 和 WKWebView 兼容 iOS8 以后苹果推出了一套新的 WKWebView,对于 UIWebView 和 WKWebView 的区别,总结如下: ?...YZWebViewDelegate,UIWebView 和 WKWebView 代理的回代理。...WebViewJavascriptBridge是一个不错的JavaScript与Native之间双向通信的库,多个厂家包括Facebook在使用,并且新的版本开始支持WKWebView,对了解Native...对于一个公司来说,往往一套底层框架需要服务于多条业务线、多个 APP,这就需要在设计的时候考虑好哪些桥可以在框架层实现(比如跳转 Web 页面,设置数据,获取数据,Back 事件,Close 事件,Alert

1.6K10

H5如何与原生App通信?

容器 在IOS客户端中,我们首先要提到的是一个叫UIWebView的容器,苹果对他的介绍是: UIWebView是一个可加载网页的对象,它有浏览记录功能,且对加载的网页内容是可编程的。...说白了UIWebView有类似浏览器的功能,我们使用可以它来打开页面,并做一些定制化的功能,如可以让js某个方法可以取到手机的GPS信息。...从IOS12开始,苹果正式弃用UIWebView,统一采用WKWebView。...ps: 在将回绑定在window下时,特别注意要使用bind保持函数内this的原有指向不变 IOS客户端调用H5方法 Native调用Javascript语言,是通过UIWebView组件的stringByEvaluatingJavaScriptFromString...{ let { data } = e.nativeEvent; //... }} /> RN客户端调用H5 postMessage是双向的,所以也可以在RN里发消息,H5里消息来触发对应的回

5.8K20

Objective-c与js交互专题

(主要在shouldStartLoadWithRequest回方法中进行桥处理)并加以处理后,再往上回调到目标VC中;具体代码如下所示: - (void) _platformSpecificSetup...在此完成注册事件回,包括注册事件与接收数据事件 handler(message[@"data"], responseCallback); } 3.1.3 js端工作机制 js端通过iFrame...这里为引起混淆,需要解释一下我这里使用的“响应”、“回”在这个上下文中的定义: (1)响应:接收端给予发送端的应答 (2)回:发送端收到接收端的应答之后在接收端调用的处理逻辑 3.3...这样也利于IOS与Android两个平台的逻辑统一。...iOS 获取UIWebView上面的按钮点击事件 http://blog.csdn.net/zhangkongzhongyun/article/details/24314007 UIWebView的使用总结

1.6K50

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

它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下,提供了简单快捷的方式与JavaScript交互。...在HMTL加载成功的回方法- (void)webViewDidFinishLoad:(UIWebView *)webView中添加要调用的原生OC方法。...不好的地方:只能使用在iOS 7以上。这点我相信现在基本没有多少应用还兼容iOS 6了吧,我去年在做这个功能的时候,还要兼容iOS 6 ? ? 。...4.通过JSContext将Model类或者Model类的实例插入JavaScript中。 当然,我们也可以给已经存在的类动态添加协议,来使其可以供JS 使用。...WKWebView中如何实现OC与JS交互可以看前面这篇文章:iOS下JS与OC互相调用(三)--MessageHandler UIWebView利用JavaScriptCore来实现交互的示例工程:JS_OC_JavaScriptCore

2.8K10

前端工程师所需要了解的WebView

window.prompt(message, value); WebChromeClient.onJsPrompt()就会受到回。...WebView In apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView....在 IOS8 之前,苹果手机的 WebView 使用的 UIWebViewUIWebView长期以来存在某些问题: 加载速度慢 存在内存泄漏 内存占用多,内存优化困难 如果内存占用过多还可能因为占用过多被系统...以 React Native 的 iOS 端举例:JavaScript 运行在 JSCore 中,实际上可以与上面的方式一样,利用注入 API 来实现 JavaScript 调用 Native 功能。...不过 React Native 并没有设计成 JavaScript 直接调用 Object-C,而是 为了与 Native 开发里事件响应机制一致,设计成 需要在 Object-C 去 JavaScript

1.4K10

JSBridge深度剖析

Android端 NativeJS native调用js比较简单,只要遵循:”javascript: 方法名(‘参数,需要转为字符串’)”的规则即可。...(大量数据建议用接口方式获取) mWebView.loadUrl(“javascript: 方法名(‘参数,需要转为字符串’)”);函数需在UI线程运行,因为mWebView为UI控件 JSNative...(大量数据建议用接口方式获取) JSNative Native中通过引入官方提供的JavaScriptCore库(iOS7以上),然后可以将api绑定到JSContext上(然后Html中JS默认通过...我们前面讲过了原生的WebView/UIWebView控件已经能够和Js实现数据通信了,那为什么还要JSBridge呢?...iOS中,UIWebView有个特性:在UIWebView内发起的所有网络请求,都可以通过delegate函数在Native层得到通知。

3.4K60

前端工程师所需要了解的WebView

window.prompt(message, value); WebChromeClient.onJsPrompt()就会受到回。...WebView In apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView....在 IOS8 之前,苹果手机的 WebView 使用的 UIWebViewUIWebView长期以来存在某些问题: 加载速度慢 存在内存泄漏 内存占用多,内存优化困难 如果内存占用过多还可能因为占用过多被系统...以 React Native 的 iOS 端举例:JavaScript 运行在 JSCore 中,实际上可以与上面的方式一样,利用注入 API 来实现 JavaScript 调用 Native 功能。...不过 React Native 并没有设计成 JavaScript 直接调用 Object-C,而是 为了与 Native 开发里事件响应机制一致,设计成 需要在 Object-C 去 JavaScript

1.3K10

前端工程师所需要了解的WebView

window.prompt(message, value); WebChromeClient.onJsPrompt()就会受到回。...WebView In apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView....在 IOS8 之前,苹果手机的 WebView 使用的 UIWebViewUIWebView长期以来存在某些问题: 加载速度慢 存在内存泄漏 内存占用多,内存优化困难 如果内存占用过多还可能因为占用过多被系统...以 React Native 的 iOS 端举例:JavaScript 运行在 JSCore 中,实际上可以与上面的方式一样,利用注入 API 来实现 JavaScript 调用 Native 功能。...不过 React Native 并没有设计成 JavaScript 直接调用 Object-C,而是 为了与 Native 开发里事件响应机制一致,设计成 需要在 Object-C 去 JavaScript

1.9K30

MessageHandler 高级用法一:封装MessageHandler

iOS中 JS 和原生APP交互有许多种方法 WebViewJavascriptBridge 是我用的比较多的一个库,但是 WebViewJavascriptBridge 中在使用时最大的一个缺点就是...WebViewJavascriptBridge 使用了一个中间代理 setWebViewDelegate 必须将 UIWebView、WKWebView 的代理设置为 WebViewJavascriptBridge...JS 原生交互 WKUserScript 通过configuration.userContentController.addUserScript 便可以添加一个 WKUserScript 对象,从而可以插入需要额外加入的...WKJSHandler' 安装 当然现在实现了 JS 和 Native 之间的直接方法的调用,并且实现了参数的传递 但是我们并不会满足于此,因为在实际的使用中,我们多数时候需要从Native 中获取一些数据...同样在我们调用 JS 方法后也希望 JS 在处理完毕之后会给我们一个回 我们的需求是 “回“ 在下一章 将会解决一下回的问题 MessageHandler 高级用法二:原生调用JS 实现回

2.6K40

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

一、iOS 平台中 UIWebView 与 WKWebView 有什么区别?...参考文章:《UIWebView与WKWebView》 UIWebView 是苹果继承于 UIView 封装的一个加载 web 内容的类,它可以加载任何远端的web数据展示在你的页面上,你可以像浏览器一样前进后退刷新等操作...不过苹果在 iOS8 以后推出了 WKWebView 来加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...库加载并使用, UIWebView 中限制了; WKWebView 目前缺少关于页码相关的 API; WKWebView 提供加载网页进度的属性; WKWebView 使用 Safari 相同的 JavaScript...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebViewiOS8 后用

3.1K00

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

一、iOS 平台中 UIWebView 与 WKWebView 有什么区别?...不过苹果在 iOS8 以后推出了 WKWebView 来加载 Web,并应用于 iOS 和 OSX 中,它取代了 UIWebView 和 WebView ,在两个平台上支持同一套 API。...WKWebView 支持了更多的 HTML5 特性; WKWebView 高效的 app 和 web 信息交换通道; WKWebView 允许 JavaScript 的 Nitro 库加载并使用, UIWebView...: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebViewiOS8 后用 WKWebView...但是目前 IOS10 以下的系统以及很少了, 小结: WKWebView 相较于 UIWebView 在整体上有较大的提升,满足 iOS 上面使用同一套控件的功能,同时对整个内存的开销以及滚动刷新率和

2.3K30
领券