iOS中H5向native传值或从H5跳转到native
来源:互联网 发布:htct328t软件下载 编辑:程序博客网 时间:2024/05/22 09:46
本博客迁移来自:http://www.jianshu.com/users/465865c268ed/latest_articles
由于项目中H5页面比较多,这几天H5页面中有个新需求:点击H5页面的某个按钮需要传递参数和跳转到Native页面。
为了省事,找了个简单的方法:按钮点击后H5请求一个假的自定义的链接,把需要传递到Native的参数通过GET请求的方式拼接。然后再Native中WebView的delegate方法中去拦截URL,解析这个URL得到我们想要的值,并且跳转到想要的页面中去:
1:实现WebView的Delegate方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ return [WGH5PageViewModel redirectionWithRequest:request];}//这是WGH5PageViewModel中的一个方法+ (BOOL)redirectionWithRequest:(NSURLRequest *)request{ NSString *requestString = [[[request URL]absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //转正办理(解雇员工时要从H5页面跳到原生的离职页面,并携带该员工的id if ([requestString containsString:@"dimission.html"]) { NSArray *strArr = [requestString componentsSeparatedByString:@"staffId="]; NSString *staffId = strArr.lastObject; //由于使用了路由统跳,页面所需要的数据都放在字典中,然后再把字典转成String的形式传递到下一个页面 NSDictionary *dataDic = @{@"type":@"1",@"staffId":staffId}; NSString *dicStr = dataDic.mj_JSONString; //push到指定的Native页面 [[HHRouter shared] pushURLString:[NSString stringWithFormat:@"/staffdimission/员工离职/%@",dicStr] animated:YES]; return NO; } return YES;}
由此简单的实现了从H5跳转到指定的Native页面并传递参数。
PS:方法中的关于路由通跳的实现可以参考我的这篇博文:http://www.jianshu.com/p/9e29c6d9983a
其中我把HHRouter的方法改进了一下,让页面的跳转可以在任何Object中实现(之前只能在ViewController中push到下一个页面,改进后可以在model中,也可在View中push)。
native和js交互最好还是使用JSCore,jscore使用的例子请看github:https://github.com/voidxin/VXJSCore/tree/master/VXJSContext
0 0
- iOS中H5向native传值或从H5跳转到native
- 从浏览器web端跳转到本地app(从h5跳native)
- H5和Native通信剖析(IOS篇)
- h5 与native
- Native PK H5(Web)
- Native与H5交互
- native与h5交互
- iOS Native与 H5交互之 H5传递信息给 native
- H5、React Native、Native应用对比分析
- H5、React Native、Native应用对比分析
- H5、React Native、Native应用对比分析
- H5、React Native、Native应用对比分析
- H5、React Native、Native应用对比分析
- H5、React Native、Native应用对比分析
- H5、React Native、Native应用对比分析
- native 和 H5 的交互
- Native与H5交互-WebViewJavascriptBridge
- Native与H5+JS 解决方案
- Weex iOS 端集成的一些感想
- 无法解析的外部符号 __imp_vfprintf II
- EDM内容灵感枯竭?试试扒扒这5个坑
- native给weex页面传值以及Weex调用native方法(iOS端)
- Java连接elasticsearch
- iOS中H5向native传值或从H5跳转到native
- JSPatch在Swift项目中的使用
- 20161215C语言基础14_函数
- 任务栏出现两列点状
- webpack教程
- ORM——基本思想
- MyBatis中xml文件中模糊查询的写法
- SVN更新的时候前面的U与G是什么意思?
- js apply和js call方法详解