iOS开发,UIWebview与H5之间的交互

导语:随着微信的不断推广,在移动开发的过程中原生与H5的混合开发在移动开发中占据着越来越重要的地位;下面我给大家分享一下我在混合开发中的心得!

  1. 将HTML页面加载到UIWebview控件中:

A:本地加载:

NSString *webPath = [[NSBundlemainBundle]pathForResource:@“HelloWord"ofType:@"html”];//获取文件路径
NSURL *webURL = [NSURLfileURLWithPath:webPath];//通过文件路径字符串设置URL
NSURLRequest *URLRequest = [NSURLRequestrequestWithURL:webURL];//设置请求提交的相关URL
[self.webView loadRequest:URLRequest];//提交请求

B:从服务器加载HTML页面

NSString *urlStr = [NSString stringWithFormat:@"%@/appservice/getAnnouncementDetail.do?id=%@",O2O_URL,self.idStr];
    NSURL *url = [NSURL URLWithString:urlStr];
    NSLog(@"url:%@",url);
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:request];

2.加入UIWebViewDelegate委托(如果想要进行相应的数据交互必须添加相应的我委托)

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType//html页面的js动作触发时运行
-(void)webViewDidFinishLoad:(UIWebView *)webView //html加载完后触发

3.OC提交JS请求.运行JS方法

[self.webViewstringByEvaluatingJavaScriptFromString:@”方法名(%@)",参数]];

4.JS提交请求到OC

-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{
    NSString *requestString = [[requestURL]absoluteString];//获取请求的绝对路径.
    NSArray *components = [requestStringcomponentsSeparatedByString:@":”];//提交请求时候分割参数的分隔符
    if ([componentscount] >1 && [(NSString *)[componentsobjectAtIndex:0]isEqualToString:@"testapp"]) {
//过滤请求是否是我们需要的.不需要的请求不进入条件
      if([(NSString *)[components objectAtIndex:1]isEqualToString:@"change"])
      {
//所要执行的操作
      }
    returnNO;
    }
    returnYES;
}

5.在HTML5中JS的写法

1.接收请求的方法写法

function
fund(){
//操作
}

2.提交请求的方法写法

function sendCommand(cmd,param){
var url="testapp:"+cmd+":"+param;//组合请求字符串
document.location = url;//提交的请求
}

最后附上例子程序(传送阵):

http://download.csdn.net/detail/fqcl992/6929375

时间: 2024-10-22 12:47:18

iOS开发,UIWebview与H5之间的交互的相关文章

iOS开发拓展篇—应用之间的跳转和数据传递

iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用. 1.新建两个应用,分别为A和B.     2.设置应用B的url. 3.在应用A中编写打开app的代码 点击之后,会跳转到新的控制器. 注意:打开应用B的过程中,B有两种状态. 第一种状态:B并没有启动,那么会启动B.并调用下面的方法. 第二种状态:此时B已经启动了,但是在后

iOS开发拓展篇—应用之间的跳转和数据传

iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用. 1.新建两个应用,分别为A和B.     2.设置应用B的url. 3.在应用A中编写打开app的代码 点击之后,会跳转到新的控制器. 注意:打开应用B的过程中,B有两种状态. 第一种状态:B并没有启动,那么会启动B.并调用下面的方法. 第二种状态:此时B已经启动了,但是在后

iOS开发 UIWebView+JavaScript 交互总结

算是个人项目经验的,印象比较深的Web+JS交互的使用 iOS原生应用与Web页面元素交互方式有很多,JavaScriptCore.拦截协议.第三方框架WebViewJavaScriptBridge.iOS8之后的WKWebView等: 简要记录下之前开发用到的两种方式: 1. 劫持页面加载,从 UIWebVIew 的 shouldStartLoadWithRequest 方法中拦截RequestURL 判断加载项,代码简要: -(BOOL)webView:(UIWebView *)webVie

转载 【iOS开发】网页JS与OC交互(JavaScriptCore) OC ----->JS

目标 本文介绍利用苹果在iOS7时发布的JavaScriptCore.framework框架进行js与OC的交互.我们想要达到的目标是: OC调用网页上的js方法 网页js调用APP中的OC方法 JavaSciptCore.framework框架介绍 JavaScriptCore是webkit的一个重要组成部分,主要是对js进行解析和提供执行环境.具体介绍请看这篇简书的文章:JavaScriptCore 使用 准备环境 创建一个名为JS与OC交互Demo的iOS工程.然后在storyboard添

iOS与Html5和JS之间的交互---学习笔记四

首先采用的框架是WebViewJavascriptBridge,采用这套框架可以方便的使iOS与JS交互 一. 流程图(主要介绍思路) 二.iOS端如何使用 首先导入#import "WebViewJavascriptBridge.h"文件 第一步:开启日志 // 开启日志,方便调试 [WebViewJavascriptBridge enableLogging]; 第二步:给ObjC与JS建立桥梁 // 给哪个webview建立JS与OjbC的沟通桥梁 self.bridge = [W

iOS开发日记27-WebView与JS的交互

今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC 网页试用[NSString stringWithFormat:@"http://cn.bing.com"] 一.在OC中调用JS 直接上代码 -(void)webViewDidFinishLoad:(UIWebView *)webView { //    NSString *docStr=[webVi

iOS开发-UIWebView加载本地和网络数据

UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能.UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的. 基础布局 页面布局很简单就是一个文本框,一个按钮,一个UIWebView,页面布局如下: 如果想简单一点的话,其实用UIWebView也行,

iOS开发-UIColor和UIImage之间的转换

UIColor 转UIImage(可将该方法作为一个UIImage的分类) - (UIImage *)imageWithColor:(UIColor *)color { //描述一个矩形 CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); //开启图形上下文 UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0); //获得图形上下文 CGContextRef ctx = UIGraphic

ios 开发之 各种数据类型之间转换 (持续补充)

1.图片转base64串及反转回图片 UIImage图片转成base64字符串: 1 UIImage *_originImage = [UIImage imageNamed:@"full_playlist_hl.png"]; 2 NSData *_data = UIImageJPEGRepresentation(_image, 1.0f);3 NSString *_encodedImageStr = [_data base64Encoding]; 4 NSLog(@"===E