调用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];

最新文章

  1. Android Activity的4种启动模式详解(示例)
  2. HTML5实践 -- 使用CSS3 Media Queries实现响应式设计
  3. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
  4. 开发成功-cpu-mem监控动态折线图--dom esayui js java
  5. ExtJs学习之Window
  6. Linux 基本命令学习笔记
  7. BZOJ 3359: [Usaco2004 Jan]矩形( dp )
  8. uva 10831 - Gerg's Cake(勒让德符号)
  9. 201521123006 《java程序设计》 第14周学习总结
  10. Docker 实战(二)——centos7镜像安装nginx,将安装nginx的centos容器生成新的镜像,并导出
  11. python安装画图模块pillow
  12. servlet之servlet(二)
  13. Linux Time_wait网络状态 调优
  14. Linux就该这么学--第五期 学习笔记
  15. HashMap的实现原理总结
  16. Python初学注意问题
  17. npm 报错unable to verify the first certificate
  18. Vue-Router路由Vue-CLI脚手架和模块化开发 之 使用props替代路由对象的方式获取参数
  19. 2017-2018-1 20155233 《信息安全系统设计基础》实现mypwd
  20. windows10添加开机自启动程序

热门文章

  1. video视频在结束之后回到初始状态
  2. Xamarin+vs2010部署错误:error MSB6004: 指定的任务可执行文件位置\sdk\\tools\zipalign.exe”无效
  3. Android百度定位API的使用
  4. Spring MVC 参数校验
  5. Bcrypt介绍
  6. Ubuntu 下nginx 的卸载 与重新装
  7. VMX指令集
  8. Linux 2.6内核Makefile浅析【转】
  9. PL/SQL 04 游标 cursor
  10. 【乱入】Uva11021麻球繁衍