• 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
      1. @interface HtmlViewController : UIViewController<WebViewJavascriptBridgeDelegate>  
    4. 接受 html中js程序传来的消息的方式
      1. 实现如下方法:(delegate 的设置要放入 viewDidLoad方法,而不能放入

        initWithNibName

        方法)

        1. - (void)viewDidLoad  
        2. {  
        3.     self.javascriptBridge = [WebViewJavascriptBridge javascriptBridgeWithDelegate:self];  
        4.     self.webView.delegate = self.javascriptBridge;  
        5.     [super viewDidLoad];  
        6. }  



        1. - (void)javascriptBridge:(WebViewJavascriptBridge *)bridge receivedMessage:(NSString *)message fromWebView:(UIWebView *)webView   
        2. {  
        3.     NSLog(@"MyJavascriptBridgeDelegate received message: %@", message);  
        4. }  
      2. 在html中通过javascript方法发出和接受消息:
        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. 在程序的业务中,使用如下方法
        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()); 

     
  • 相关阅读:
    只允许在input框输入文字,不能输入数字和其他字符
    阻止用户在input框输入数字
    centos 7.2安装和配置MongoDB
    Python基础
    Python小练习008
    Python小练习007
    Python小练习006
    Python错误集锦
    Python和MongoDB
    MongoDB笔记
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/3725384.html
Copyright © 2020-2023  润新知