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

iOS 调H5方法不执行没反应的坑的更多相关文章

  1. 浅谈iOS开发中方法延迟执行的几种方式

    Method1. performSelector方法 Method2. NSTimer定时器 Method3. NSThread线程的sleep Method4. GCD 公用延迟执行方法 - (vo ...

  2. iOS开发中方法延迟执行的几种方式

    概述 项目开发中经常会用到方法的延时调用,下面列举常用的几种实现方式: 1.performSelector 2.NSTimer 3.NSThread线程的sleep 4.GCD 1.performSe ...

  3. ios之申请后台延时执行和做一个假后台的方法(系统进入长时间后台后,再进入前台部分功能不能实现)

    转自:http://sis hu ok.com/forum/blogCategory/showByCategory.html?categories_id=138&user_id=10385   ...

  4. ios之申请后台延时执行和做一个假后台的方法

    转自:http://sis hu ok.com/forum/blogCategory/showByCategory.html?categories_id=138&user_id=10385   ...

  5. ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行

    https://blog.csdn.net/yang450712123/article/details/79276102 https://blog.csdn.net/Chengbin_Huang/ar ...

  6. jquery下的提交,点击按钮没反应,post方法不执行 JSON方式在FORM表单下不起作用

    jquery下的提交,点击按钮没反应,post方法不执行 JSON方式在FORM表单下不起作用

  7. H5 Canvas | 画布中变量作用域与setInterval方法同步执行探究

    Demo - 随机绘制圆环 实现思路: 将一个圆环的绘制分成100份,setInterval()方法定义每隔时间n绘制一段新的,每份的开始路径都是上一次的结束路径,实现步进绘制. 通过Math.ran ...

  8. iOS与H5交互

    H5与App原生交互,一般会是前端页面中的JavaScript与App使用的原生开发语言的交互.技术方案应能达到以下要求: 在js与原生进行交互的时候能保证正常的正向调用逻辑返回,反向可以处理异步回调 ...

  9. WebViewJavascriptBridge详细使用 iOS与H5交互的方案

    WebViewJavascriptBridge详细使用 源网址: https://www.cnblogs.com/jiang-xiao-yan/p/5345755.html    前言 WebView ...

随机推荐

  1. 初识 spl_autoload_register

    spl_autoload_register 一.首先我们看来自官网的定义 版本要求:php版本为5.1.2+ 说明:注册给定的函数作为__autoload的实现.即自动加载 函数参数说明: bool ...

  2. jquery学习之事件委派

    一.定义 事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素. 二.版本 从jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函 ...

  3. PowerDesigner使用教程(转)

    PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一.Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesign ...

  4. bzoj 1089 SCOI2003严格n元树 递推

    挺好想的,就是一直没调过,我也不知道哪儿的错,对拍也拍了,因为数据范围小,都快手动对拍了也不知道 哪儿错了.... 我们定义w[i]代表深度<=i的严格n元树的个数 那么最后w[d]-w[d-1 ...

  5. Django-urls路由分发

      例如:127.0.0.0:8000/blog/lucaq.html,当有多个应用时,需要在blog应用下进行路由,我们在blog应用下做一个urls路由分发,就需要include模块实现.   导 ...

  6. 自动化测试===【转】Robot Framework作者建议如何选择自动化测试框架

    原文:http://www.infoq.com/cn/news/2012/06/robot-author-suggest-autotest 软件自动化测试,作为手工测试的替代,越来越受到关注.Pekk ...

  7. 查询ubuntu系统版本相关信息

    查询ubuntu系统版本相关信息 sky@sky-virtual-machine:~$ cat /etc/issueUbuntu 12.04.5 LTS \n \l proc目录下记录的当前系统运行的 ...

  8. DRF的认证与权限功能

    认证 1.全局配置 在setting.py进行配置. REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( # 'rest_framework. ...

  9. redis.clients.jedis.HostAndPort - cant resolve localhost address

    阿里云ECS部署spring-boot访问redis出现redis.clients.jedis.HostAndPort - cant resolve localhost address 摘要: 阿里云 ...

  10. 【SQL】约束与触发器2

    3.修改约束 3.1给约束命名 按如下格式命名: name ) CONSTRAINT NameIsKey PRIMARY KEY gender ) CONSTRAINT NoAndro CHECK ( ...