iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯

本文转载至 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
    plain
    copy

    1. @interface HtmlViewController : UIViewController<WebViewJavascriptBridgeDelegate>

  4. 接受 html中js程序传来的消息的方式
    1. 实现如下方法:(delegate
      的设置要放入 viewDidLoad方法,而不能放入

      initWithNibName

      方法)

      [cpp] view
      plain
      copy

      1. - (void)viewDidLoad

      2. {

      3. self.javascriptBridge = [WebViewJavascriptBridge javascriptBridgeWithDelegate:self];

      4. self.webView.delegate = self.javascriptBridge;

      5. [super viewDidLoad];

      6. }

      [cpp] view
      plain
      copy

      1. - (void)javascriptBridge:(WebViewJavascriptBridge *)bridge receivedMessage:(NSString *)message fromWebView:(UIWebView *)webView

      2. {

      3. NSLog(@"MyJavascriptBridgeDelegate received message: %@", message);

      4. }

    2. 在html中通过javascript方法发出和接受消息:

      [html] view
      plain
      copy

      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
      plain
      copy

      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进行双向通讯,布布扣,bubuko.com

iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView
对Html进行双向通讯

时间: 2024-12-15 07:01:27

iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯的相关文章

iOS 开发中利用 Quartz 2D 获得圆角图片

背景: 现在社交软件中,圆角的图片可以说是泛滥了,原来方方正正的 QQ 头像,都被世俗磨平了... 那么怎么将一张图片加工成圆角呢? 你可能会说:"找美工啊!" 对!偷懒必备口诀之 "找美工!" 但是,如果用户自己要上传自定义头像呢? 还是一要程序处理嘛! 下面我们利用强大的Quartz 2D 来自己加工图片 直接上代码: 代码: 我是给 UIImage 增加了一个分类,以后直接各种用 + (instancetype)imageWithIcon:(NSString

ios开发中-AFNetworking 的简单介绍

Blog: Draveness 关注仓库,及时获得更新: iOS-Source-Code-Analyze 在这一系列的文章中,我会对 AFNetworking 的源代码进行分析,深入了解一下它是如何构建的,如何在日常中完成发送 HTTP 请求.构建网络层这一任务. AFNetworking 是如今 iOS 开发中不可缺少的组件之一.它的 github 配置上是如下介绍的: Perhaps the most important feature of all, however, is the ama

ios开发中iphone模拟器中程序文件和数据库的存放位置

1.使用命令: chflags nohidden ~/library/ 使隐藏的资源库文件夹显示出来.如果想要隐藏掉,使用:chflags hidden ~/library/ 2.finder中找到:用户->mwsn(这是我的用户名)->资源库->Application Support->iPhone Simulator->7.0(根据你的版本确定是哪个)->Applications 里面有一堆目录,挨个查看,找到你需要的工程的目录->Documents文件夹,你

iOS开发中图片方向的获取与更改

iOS开发中 再用到照片的时候  或多或少遇到过这样的问题  就是我想用的照片有横着拍的有竖着排的  所以导致我选取图片后的效果也横七竖八的   显示效果不好 比如: 图中红圈选中的图片选取的是横着拍的图片 所以显示的头像也是横着的 显示效果不佳 问题描述: 使用过iPhone或者iPad的朋友在拍照时不知是否遇到过这样的问题,将设备中的照片导出到Windows上时,经常发现导出的照片方向会有问题,要么横着,要么颠倒着,需要旋转才适合观看.而如果直接在这些设备上浏览时,照片会始终显示正确的方向,

iOS开发中UIPopoverController的使用详解

这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下 一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 2.使用步骤 要想显示一个UIPopoverController,需要经过下列步骤

iOS开发——淫技篇&amp;iOS开发中各种淫技总结(六)

iOS开发中各种淫技总结(六) swift中指针的使用 在 Swift 中,指针都使用一个特殊的类型来表示,那就是 UnsafePointer<T>.遵循了 Cocoa 的一贯不可变原则,UnsafePointer<T> 也是不可变的.当然对应地,它还有一个可变变体,UnsafeMutablePointer<T>.绝大部分时间里,C 中的指针都会被以这两种类型引入到 Swift 中:C 中 const 修饰的指针对应 UnsafePointer (最常见的应该就是 C

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

使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源 3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的. 从1可以得出,将整个应用程序分模块,团队合作,进行分工,影响比较小. 等其他好处, 从2可以看出,其实动态库应该叫共享库,那么从这个意义上来说,苹果禁止iOS开

iOS开发中使用宏定义提高开发效率

iOS开发中使用宏定义提高开发效率 (2013-07-10 10:47:33) 转载▼ iOS开发中,巧妙的使用宏定义,可以提高开发效率,本篇简单介绍一下宏的定义,设置,应用,并在未来实践中不断追加一些常用的宏定义. 调试Log iPhone应用程序开发调试的时候,在代码中加入NSLog的暴力调试方法是很频繁的,但是在release的时候要删除这些调试代码,那工作量是烦躁,这样的情况下,试用宏就会显得非常的方便. 看下面的例子: #ifdef DEBUG #define LOG(...) NSL

iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上

iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上. (我的开发环境为Xcode6.1.1 ) 作为个人开发者(当然我的开发者帐号为个人开发者帐号,而不是企业开发者帐号),对于自己来说,我们只需要真机调试就可以将应用安装到自己的手机上:如果你在发布前想给更多的测试或朋友使用你的APP(关键是他们并不在你的身边,如果在你的身边,你当然可以通过真机调试一个一个的将应用安装到他们的手机上:此时你的APP还没有上线,Appstore还没有),你该怎么做呢?想想吧! 在开发者中心中,你可能