iOS 调H5方法不执行没反应的坑
2024-08-21 05:25:04
调用H5的方法需要给H5传一些参数,参数中包括图片的base64字符串。
错误一:
图片转base64,后面参数不能随便写,正确做法如下
NSData *imageData = UIImageJPEGRepresentation(img,0.1);
NSString *strImgBase64 = [imageData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
把NSDataBase64EncodingEndLineWithLineFeed换成枚举中的其他值转成的base64,然后拼到json字符串中时,校验根本不通过,所以调H5没反应。
错误二:
把参数拼成json字符串时,字典转json字符串作为参数调H5根本没反应
//第一层
NSMutableDictionary *mDicBack = [NSMutableDictionary new];
mDicBack[@"msg"] = @"success";
mDicBack[@"code"] = @""; //第二层
NSMutableDictionary *mDic2 = [NSMutableDictionary new];
mDic2[@"fromserver"] = dic;
mDic2[@"base64"] = [NSString stringWithFormat:@"data:image\/jpg;base64,%@",strImgBase64]; mDicBack[@"data"] = mDic2;
//字典转json字符串
if ([NSJSONSerialization isValidJSONObject:mDicBack])
{
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:mDicBack options:NSJSONWritingPrettyPrinted error:nil];
jsonStr = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
} NSString *backJson = [NSString stringWithFormat:@"callBack('%@')", jsonStr];
[self.h5View stringByEvaluatingJavaScriptFromString:backJson];
只能换下面手工拼接方法才行。
jsonStr = [NSString stringWithFormat:@"{\"msg\":\"success\",\"code\":\"0\",\"data\":{\"fromserver\":{\"result\":%@,\"message\":\"%@\",\"path\":\"%@\",\"serverpath\":\"\%@\"},\"base64\":\"data:image\/png;base64,%@\"}}",dic[@"result"],dic[@"message"],dic[@"path"],dic[@"serverpath"],strImgBase64];
最新文章
- Android Activity的4种启动模式详解(示例)
- HTML5实践 -- 使用CSS3 Media Queries实现响应式设计
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
- 开发成功-cpu-mem监控动态折线图--dom esayui js java
- ExtJs学习之Window
- Linux 基本命令学习笔记
- BZOJ 3359: [Usaco2004 Jan]矩形( dp )
- uva 10831 - Gerg&;#39;s Cake(勒让德符号)
- 201521123006 《java程序设计》 第14周学习总结
- Docker 实战(二)——centos7镜像安装nginx,将安装nginx的centos容器生成新的镜像,并导出
- python安装画图模块pillow
- servlet之servlet(二)
- Linux Time_wait网络状态 调优
- Linux就该这么学--第五期 学习笔记
- HashMap的实现原理总结
- Python初学注意问题
- npm 报错unable to verify the first certificate
- Vue-Router路由Vue-CLI脚手架和模块化开发 之 使用props替代路由对象的方式获取参数
- 2017-2018-1 20155233 《信息安全系统设计基础》实现mypwd
- windows10添加开机自启动程序