OC和JS交互、JS和OC交互
来源:互联网 发布:squid Windows缓存 编辑:程序博客网 时间:2024/05/14 14:17
现在做开发 很多会出现交互问题 我在公司项目中也会用到交互 下面我大致写下 交互的代码
- (void)loadWeb{
//1..加载H5地址
//加载地址
NSString *str = @"H5传过来的地址";
NSURLRequest *reUrl = [NSURLRequest requestWithURL:[NSURL URLWithString:str]];
[self.webView loadRequest:reUrl];
///主要 这里是直接传地址给H5 属于get方法传输 但是有参数长度限制 也有post传输 不限制参数长度 这里不另外写 很简单 也是几行代码的事情
//2..JS调用OC 其实就是客户端传给H5页面的地址 这里也要约定字段
NSString *string = [NSString stringWithFormat:@"?约定字段={\"参数名\":\"参数内容\"}"];
string = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *strURL = [NSString stringWithFormat:@"%@%@",str,string];
NSURL *cateUrl = [NSURL URLWithString:strURL];
NSURLRequest *request = [NSURLRequest requestWithURL:cateUrl];
[self.webView loadRequest:request];
}
//进行JS交互
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
//和H5端约定的字段名
if([request.URL.absoluteString rangeOfString:@"约定字段"].location != NSNotFound){
NSString *jsonStr = [request.URL.absoluteString componentsSeparatedByString:@"约定字段"][1];
NSDictionary *jsonDict = [self dictionaryWithJsonString:jsonStr];
NSLog(@"从H5端获取的参数字典");
//与后台进行交互 上传服务器 这里是测试demo 假设传回来的字典参数都上传服务器
[self postToServer:jsonDict];
return NO;
}
return YES;
}
- (void)postToServer:(NSDictionary *)dict{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:@"后台接口地址" parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (responseObject) {
NSLog(@"上传成功");
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error.description);
}];
}
- OC和JS交互
- JS和OC交互
- OC和JS交互、JS和OC交互
- 关于JS和OC交互
- iOS ---oc和js交互
- js和oc相互交互
- OC 和JS的交互
- iOS--js和oc交互
- OC和JS交互 -- JavaScriptCore
- WKWebView OC和JS交互
- OC和JS交互 JS端代码
- webView中OC和JS交互
- iOS ---oc和js交互2
- iOS - OC和网页JS的交互
- 10分钟 搞定JS和OC交互
- oc 和 h5中js 的交互
- JS和OC交互的参考
- iOS js和OC方法交互
- 编译caffe.proto
- Javascript:简易天数计算器
- 账号通过邮箱找回密码功能设计
- 竞相引入互联网基因 中小银行逐鹿消费金融市场
- 如何利用jQuery扩展自己的插件
- OC和JS交互、JS和OC交互
- 如何有效使用Project(1)——编制进度计划、保存基准
- leetcode刷题系列--206. Reverse Linked List 递归和非递归 c++实现
- 洛谷 P2800 又上锁妖塔
- 深入理解学习Git工作流(git-workflow-tutorial)
- 1034. 有理数四则运算(20)
- php面向对象之继承
- eclipse中使用 design 包和 v7 包
- linux vmware workspace设置共享文件夹