7***@qq.com
7***@qq.com
  • 发布:2019-06-24 23:58
  • 更新:2019-06-25 09:33
  • 阅读:1350

【报Bug】ios 端 plus.push.addEventListener 监听receive 使用JSON.parse(str)报错

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]```javascript
//监听receive事件
plus.push.addEventListener("receive", function(msg) {
if(typeof(msg) != "object"){
var msg = JSON.parse(msg);
}
if (plus.os.name != 'iOS') {
var options={};
options.title=msg.title;
plus.push.createMessage(msg.content, msg.payload,options);
}else{
switch (msg.payload) {
case "LocalMSG":
break;
default:
//测试本地推送
var iosmsg=JSON.parse(msg.content);
console.log(typeof(iosmsg))
console.log(iosmsg)
var options = {cover: false};
plus.push.createMessage(msg.content, "LocalMSG", options);
break;
}
}
}, false);

  
## 重现步骤  
  
[步骤]  
 [JS Framework] Failed to execute the callback function:  
 + SyntaxError: JSON Parse error: Single quotes (') are not allowed in JSON __ERROR   
[结果]  
  
[期望]  
  
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]  
  
## IDE运行环境说明  
  
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]  
  
[IDE版本号]  
  
[windows版本号]  
  
[mac版本号]  
  
## uni-app运行环境说明  
  
[运行端是h5或app或某个小程序?]  
  
[运行端版本号]  
  
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]  
  
[编译模式是老模板模式还是新的自定义组件模式?]  
  
## App运行环境说明  
  
[Android版本号]  
  
[iOS版本号]  
  
[手机型号]  
  
[模拟器型号]  
  
## 附件  
  
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]  
  
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]  
  
[App安装包或H5地址]  
  
[可重现代码片段]  
  
## 联系方式  
  
[QQ]  
                                                
2019-06-24 23:58 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者)

已处理 ,不是BUG

//监听receive事件  
			plus.push.addEventListener("receive", function(msg) {  
				if(typeof(msg) != "object"){  
					var msg = JSON.parse(msg);  
				}  
				console.log(msg);  
				if (plus.os.name != 'iOS') {  
					var options={};  
					options.title=msg.title;  
					plus.push.createMessage(msg.content, msg.payload,options);  
				}else{  
					switch (msg.payload) {  
						case "LocalMSG":  
							break;  
						default:  
							//测试本地推送  
							var iosmsgstr = msg.content.replace(/\'/g, '"')  
							var iosmsg=JSON.parse(iosmsgstr);  
							var options = {cover: false};  
							plus.push.createMessage(iosmsg.content, "LocalMSG", options);  
							break;  
					}  
				}  
			}, false);

该问题目前已经被锁定, 无法添加新回复