本文转载至 http://blog.csdn.net/remote_roamer/article/details/7261490

WebViewJavascriptBridge 项目的 官网

https://github.com/marcuswestin/WebViewJavascriptBridge

主要过程:

  1. 下载WebViewJavascriptBridge.h 和 WebViewJavascriptBridge.m文件到自己的项目中,并添加到项目。
  2. 在相应的.h文件中 使用
    #import "WebViewJavascriptBridge.h"
  3. 在相应的.h文件中使用 类别 WebViewJavascriptBridgeDelegate
    [cpp] view plaincopy
    1. @interface HtmlViewController : UIViewController<WebViewJavascriptBridgeDelegate>
  4. 接受 html中js程序传来的消息的方式
    1. 实现如下方法:(delegate 的设置要放入 viewDidLoad方法,而不能放入

      initWithNibName

      方法)

      [cpp] view plaincopy
      1. - (void)viewDidLoad
      2. {
      3. self.javascriptBridge = [WebViewJavascriptBridge javascriptBridgeWithDelegate:self];
      4. self.webView.delegate = self.javascriptBridge;
      5. [super viewDidLoad];
      6. }
      [cpp] view plaincopy
      1. - (void)javascriptBridge:(WebViewJavascriptBridge *)bridge receivedMessage:(NSString *)message fromWebView:(UIWebView *)webView
      2. {
      3. NSLog(@"MyJavascriptBridgeDelegate received message: %@", message);
      4. }
    2. 在html中通过javascript方法发出和接受消息:
      [html] view plaincopy
      1. document.addEventListener('WebViewJavascriptBridgeReady', function onBridgeReady() {
      2. WebViewJavascriptBridge.setMessageHandler(function(message) {
      3. alert('Received message: ' + message)
      4. })
      5. WebViewJavascriptBridge.sendMessage('Hello from the javascript,发送信息给objc')
      6. }, false)
  5. objectc 程序发送消息 给 html。
    1. 在程序的业务中,使用如下方法

      [cpp] view plaincopy
      1. //发送消息给 html
      2. [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进行双向通讯...相关推荐

  1. iOS开发中利用AFNetWorking判读网络是否连接

    在iOS项目开发中有时候需要判断当前设备中是否有网络连接,然后再去做一些弹框提示或者其他的操作来提高用户体验.在最近的开发中利用AFNetWorking实现了网络连接判断,下面是具体操作: 1.首先需 ...

  2. iOS开发中常用的方法

    iOS开发中常用的方法 系统弹窗: 过期方法: UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"确认报价" ...

  3. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  4. iOS 开发中的 Flux 架构模式

    本文讲的是iOS 开发中的 Flux 架构模式, 在半年前,我开始在 PlanGrid iOS 应用程序中采用 Flux 架构(开发).这篇文章将会讨论我们从传统的 MVC 转换到Flux的动机,同时 ...

  5. 【Dr.爱疯限时免费软体报报】 2014年06月9号 iPhone、iPad、iOS APP

    Dr.爱疯 每日限时免费 APP 报报以下是今天的限时免费软体与游戏,请尽快下载喔,以免届时变付费的.限时免费APP下载内容,不保证永远免费,可能随时改变成收费状态,请下载前查阅内容确认是否为免费中, ...

  6. iOS开发中自带的图标库

    iOS 开发中苹果自带的图标库,uiimage可直接调用 @available(iOS 13.0, *) @objc public extension UIImage{ /// square.and. ...

  7. iOS开发中屏幕旋转(一)

    Morris_ 2018.11.24 前言 最近做一个关于在线视频互动的iPad项目,部分界面只要横屏,部分界面可以横竖屏转换.看了看别家做的项目,有些是只做竖/横屏,有些是支持了横竖屏转换,在iPa ...

  8. iOS开发中各种关键字的区别

    1.一些概念 1.浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存. 深Copy:内存的复制,两块内存是完全不同的, 也就是两个对象指针分别指向不同的内存,互不干涉. 2.atom ...

  9. iphone实现下拉列表(iOS开发 )

    iphone实现下拉列表(iOS开发 ) #import <UIKit/UIKit.h> @interface DropDownList : UIView<UITableViewDe ...

最新文章

  1. android获取软件大小,android获取屏幕大小包括状态栏和软件导航栏的大小
  2. 关于IE8.0 Internet Explorer 已经为了帮助保护您的计算机而关闭此网页 解决方法
  3. mysql linux 客户端_MySQL—Linux查看客户端连接信息(连接数、进程等)
  4. android压缩图片不失真,Android压缩图片到100K以下并保持不失真的高效方法 - feicien的博客 - eoe移动开发者社区...
  5. 硬件知识:什么是扩展坞,看完你就明白了!
  6. Spring中RedirectAttributes对象重定向传参
  7. 软件需求分析用例图 实例简述
  8. 做scratch游戏心得1
  9. 六级考研单词之路-五十四
  10. 技能高考计算机专业考什么,2016年技能高考计算机专业考试总结.pdf
  11. poco库开发mysql_Poco数据库操作
  12. [BZOJ3772]精神污染(主席树+链剖)
  13. 【渝粤教育】电大中专药物化学基础 (2)作业 题库
  14. 校招总结--建议全文背诵
  15. Kotlin版注解处理器Annotation Processor
  16. 【项目工程】利用安卓手机NFC功能和KPC物联网仿真平台的智能花盆设计
  17. 6500元都不到?战神Z8-DA5NP配置强悍,神船的性价比又回来了
  18. 晶莹剔透的泪珠不停地悄然滑
  19. Linux- rsync企业级实战
  20. 小福利,用selenium模块爬取qq音乐歌单

热门文章

  1. 去除警告: FutureWarning: In future, it will be treated as `np.float64 == np.dtype(float).type`.
  2. php语法大全下载,PHP下载文件
  3. spring如何解决循环依赖
  4. LeetCode Longest Repeating Character Replacement(滑动窗口)
  5. LeetCode Decode String(栈和递归)
  6. LA4234 Binary Clock(进制转换)
  7. Git 合并两个不同的仓库
  8. Spring Cloud - 前言
  9. 全文搜索技术—Lucene
  10. SSH之IDEA2017整合Struts2+Spring+Hibernate