UIWebView和js交互demo1



在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。它可以加载HTML、CSS和JavaScript代码,并且具有与Objective-C(OC)代码进行交互的能力。本项目"UIWebView和js交互demo1"就是展示了如何利用UIWebView进行 OC与JS之间的通信,实现两者之间的数据交换和功能调用。 一、UIWebView基本使用 UIWebView的使用主要包括初始化、加载网页内容以及设置代理。我们需要创建一个UIWebView实例,然后通过`loadRequest:`方法加载URL请求或`loadHTMLString:baseURL:`方法加载HTML字符串。设置`UIWebViewDelegate`代理可以监听网页加载状态,如加载开始、完成、失败等事件。 ```swift let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)) view.addSubview(webView) let url = URL(string: "http://www.example.com")! let request = URLRequest(url: url) webView.load(request) webView.delegate = self ``` 二、OC操作JS 在OC中,我们可以使用`stringByEvaluatingJavaScriptFromString:`方法执行JavaScript代码。这个方法接收一个JavaScript字符串作为参数,返回执行结果。例如,我们可以通过此方法获取网页上的某个元素的属性或者执行页面上的函数: ```objc NSString *javascript = @"document.body.style.backgroundColor = 'red';"; [webView stringByEvaluatingJavaScriptFromString:javascript]; ``` 三、JS对OC进行交互 为了使JavaScript能够调用OC的方法,我们需要实现`WKScriptMessageHandler`协议,定义一个处理JavaScript消息的方法。然后使用`WKWebView`的`evaluateJavaScript:completionHandler:`方法注入一个全局JavaScript对象,该对象的属性或方法对应OC中的方法。 ```swift class ViewController: UIViewController, WKScriptMessageHandler { var webView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let config = WKWebViewConfiguration() config.userContentController.add(self, name: "myHandler") webView = WKWebView(frame: .zero, configuration: config) view.addSubview(webView) let html = """ <html> <body> <button onclick="callNativeFunction()">点击我</button> <script> function callNativeFunction() { window.webkit.messageHandlers.myHandler.postMessage('来自JS的问候'); } </script> </body> </html> """ webView.loadHTMLString(html, baseURL: nil) } func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { if message.name == "myHandler" { print("接收到JS的消息:\(message.body)") } } } ``` 四、WKWebView替代UIWebView 虽然UIWebView已经足够实现OC与JS的交互,但随着iOS的发展,苹果推荐使用WKWebView,因为它的性能更好,内存管理更优,同时支持更多的现代Web标准。WKWebView的使用方式类似UIWebView,但API有所不同,如使用`WKWebViewConfiguration`来设置用户内容控制器,使用`WKScriptMessageHandler`协议来处理JavaScript消息。 "UIWebView和js交互demo1"项目主要展示了如何在iOS应用中利用UIWebView或WKWebView进行OC与JS的交互,这在实现复杂的混合式应用或者增强原生应用的Web功能时非常有用。通过这种交互方式,开发者可以充分利用JavaScript的灵活性,同时结合OC的强大能力,为用户提供更加丰富的用户体验。












































































































































- 1

- guhwjj2015-12-08可以参考,谢谢上传。

- 粉丝: 136
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【Python爬虫】从请求到数据存储全流程指南:涵盖网络请求、HTML解析与数据处理基础教程
- 由百度文心大模型驱动的 AirSim 无人机系统
- Selenium测试版浏览器和驱动
- 基于OpenCV的工业机器视觉软件开发.pdf
- 基于百度文心大模型驱动airsim无人机
- Python在图书情报学的应用与扩散研究.pdf
- 基于ELF文件恢复的Linux内存取证技术研究.caj
- 基于MATLAB地下水溶质运移预测模型的构建.pdf### 文章总结
- 管理系统源码-Python编程-基于SQLite的用户管理系统实现:涵盖CRUD功能的数据库操作入门教程
- 用于调用生成式大语言模型的 API 服务器系统
- 全国小区数据(包含字段:小区名、省份、城市、区域、地址、纬度(百度地图)、经度(百度地图)、纬度(GPS)、经度(GPS)、物业费
- 【大模型 NLP 算法付费干货大礼包】一站式拥有,学习科研工作全无忧!
- SQL Server 2000权威指南:从入门到精通
- 一项基于大模型的App隐私开关探测技术
- python 练习题 ,python 题目
- python 练习题,python 三角形题目


