iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯...
本文转载至 http://blog.csdn.net/remote_roamer/article/details/7261490
WebViewJavascriptBridge 项目的 官网
https://github.com/marcuswestin/WebViewJavascriptBridge
主要过程:
- 下载WebViewJavascriptBridge.h 和 WebViewJavascriptBridge.m文件到自己的项目中,并添加到项目。
- 在相应的.h文件中 使用
#import "WebViewJavascriptBridge.h"
- 在相应的.h文件中使用 类别 WebViewJavascriptBridgeDelegate
[cpp] view plaincopy
- @interface HtmlViewController : UIViewController<WebViewJavascriptBridgeDelegate>
- 接受 html中js程序传来的消息的方式
- 实现如下方法:(delegate 的设置要放入 viewDidLoad方法,而不能放入
initWithNibName
方法)
[cpp] view plaincopy- - (void)viewDidLoad
- {
- self.javascriptBridge = [WebViewJavascriptBridge javascriptBridgeWithDelegate:self];
- self.webView.delegate = self.javascriptBridge;
- [super viewDidLoad];
- }
[cpp] view plaincopy- - (void)javascriptBridge:(WebViewJavascriptBridge *)bridge receivedMessage:(NSString *)message fromWebView:(UIWebView *)webView
- {
- NSLog(@"MyJavascriptBridgeDelegate received message: %@", message);
- }
- 在html中通过javascript方法发出和接受消息:
[html] view plaincopy
- document.addEventListener('WebViewJavascriptBridgeReady', function onBridgeReady() {
- WebViewJavascriptBridge.setMessageHandler(function(message) {
- alert('Received message: ' + message)
- })
- WebViewJavascriptBridge.sendMessage('Hello from the javascript,发送信息给objc')
- }, false)
- 实现如下方法:(delegate 的设置要放入 viewDidLoad方法,而不能放入
- objectc 程序发送消息 给 html。
- 在程序的业务中,使用如下方法
[cpp] view plaincopy
- //发送消息给 html
- [self.javascriptBridge sendMessage:@"Well hello there,objc 发送消息给 html" toWebView:self.webView];
- 在程序的业务中,使用如下方法
下面这个博客的文章,是没有通过 WebViewJavascriptBridge 组件来进行处理 objectC和 html相互通讯,从原理上会更清晰的帮忙我们理解
http://wangjun.easymorse.com/?p=1087
这篇文章 也描述的很详细
http://blog.csdn.net/cococoolwhj/article/details/7019828
用这个方法 的时候在js文件里面 如果传出中文。要用到 js里面的 方法encodeURI 来处理一下。否则 xcode 中用
NSString* rurl=[[[request URL] absoluteString]stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 无法取得中文
var url="protocol://"+encodeURI($("#textarea").val());
iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯...相关推荐
- iOS开发中利用AFNetWorking判读网络是否连接
在iOS项目开发中有时候需要判断当前设备中是否有网络连接,然后再去做一些弹框提示或者其他的操作来提高用户体验.在最近的开发中利用AFNetWorking实现了网络连接判断,下面是具体操作: 1.首先需 ...
- iOS开发中常用的方法
iOS开发中常用的方法 系统弹窗: 过期方法: UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"确认报价" ...
- ios 开发中 动态库 与静态库的区别
使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...
- iOS 开发中的 Flux 架构模式
本文讲的是iOS 开发中的 Flux 架构模式, 在半年前,我开始在 PlanGrid iOS 应用程序中采用 Flux 架构(开发).这篇文章将会讨论我们从传统的 MVC 转换到Flux的动机,同时 ...
- 【Dr.爱疯限时免费软体报报】 2014年06月9号 iPhone、iPad、iOS APP
Dr.爱疯 每日限时免费 APP 报报以下是今天的限时免费软体与游戏,请尽快下载喔,以免届时变付费的.限时免费APP下载内容,不保证永远免费,可能随时改变成收费状态,请下载前查阅内容确认是否为免费中, ...
- iOS开发中自带的图标库
iOS 开发中苹果自带的图标库,uiimage可直接调用 @available(iOS 13.0, *) @objc public extension UIImage{ /// square.and. ...
- iOS开发中屏幕旋转(一)
Morris_ 2018.11.24 前言 最近做一个关于在线视频互动的iPad项目,部分界面只要横屏,部分界面可以横竖屏转换.看了看别家做的项目,有些是只做竖/横屏,有些是支持了横竖屏转换,在iPa ...
- iOS开发中各种关键字的区别
1.一些概念 1.浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存. 深Copy:内存的复制,两块内存是完全不同的, 也就是两个对象指针分别指向不同的内存,互不干涉. 2.atom ...
- iphone实现下拉列表(iOS开发 )
iphone实现下拉列表(iOS开发 ) #import <UIKit/UIKit.h> @interface DropDownList : UIView<UITableViewDe ...
最新文章
- android获取软件大小,android获取屏幕大小包括状态栏和软件导航栏的大小
- 关于IE8.0 Internet Explorer 已经为了帮助保护您的计算机而关闭此网页 解决方法
- mysql linux 客户端_MySQL—Linux查看客户端连接信息(连接数、进程等)
- android压缩图片不失真,Android压缩图片到100K以下并保持不失真的高效方法 - feicien的博客 - eoe移动开发者社区...
- 硬件知识:什么是扩展坞,看完你就明白了!
- Spring中RedirectAttributes对象重定向传参
- 软件需求分析用例图 实例简述
- 做scratch游戏心得1
- 六级考研单词之路-五十四
- 技能高考计算机专业考什么,2016年技能高考计算机专业考试总结.pdf
- poco库开发mysql_Poco数据库操作
- [BZOJ3772]精神污染(主席树+链剖)
- 【渝粤教育】电大中专药物化学基础 (2)作业 题库
- 校招总结--建议全文背诵
- Kotlin版注解处理器Annotation Processor
- 【项目工程】利用安卓手机NFC功能和KPC物联网仿真平台的智能花盆设计
- 6500元都不到?战神Z8-DA5NP配置强悍,神船的性价比又回来了
- 晶莹剔透的泪珠不停地悄然滑
- Linux- rsync企业级实战
- 小福利,用selenium模块爬取qq音乐歌单
热门文章
- 去除警告: FutureWarning: In future, it will be treated as `np.float64 == np.dtype(float).type`.
- php语法大全下载,PHP下载文件
- spring如何解决循环依赖
- LeetCode Longest Repeating Character Replacement(滑动窗口)
- LeetCode Decode String(栈和递归)
- LA4234 Binary Clock(进制转换)
- Git 合并两个不同的仓库
- Spring Cloud - 前言
- 全文搜索技术—Lucene
- SSH之IDEA2017整合Struts2+Spring+Hibernate