问题环境:
1、微信开发者工具1.05.2110290(以下简称“工具”)
2、真机调试1.0版本(不区分IOS与Android)
3、微信的editor component,用于在自己的项目中,作为富文本的输入(包括图片、多种格式文字等)
Editor的界面效果如图(两个按钮是后期加的,不是editor自带的)
文章图片
产生的问题:
在工具的模拟器中,在editor中插入图片,点击提交,数据能够正常的发送到后端。
但每次用Iphone真机模拟,在editor中插入的图片,每次都无法到后端服务器。由于笔者平时不用android手机,所以当时并不知晓android手机的真机调试效果。
发现出现问题的原因:
通过console.log输出在editor插入图片后,输出的该插入图片的html,发现各自有不同:
Android真机调试:
在Editor编辑器里面贴图片,获取到的HTML数据。
文章图片
IOS真机调试:
在Editor编辑器里面贴图片,获取到的HTML数据。
注意,与Android真机调试不同的是,IOS系统中Editor形成的图片html里面的src属性,与data-local属性值是不一样的,是base64加密的、长达上百行的数据(以下便于介绍,删除了这些长的加密数据)。
文章图片
微信开发者工具的模拟器进行模拟
在Editor编辑器里面贴图片,获取到的HTML数据。
可以看到,首先src的值,与真机是不一样的(在模拟器里形成的src是http开头),再就是没有data-local属性。
文章图片
这些不同,导致后端服务器收到的html信息或属性是不一样的,后端不好标准化的处理这些信息。
解决问题的方式:
个人解决方式,供大家参考。
以上三种情形,都需要让他们能够正常运行。
笔者后端对editor发送过来的图形html信息,重点要获得图形img所存储的位置信息,在以上情形中,工具模拟器、android的src属性都能提供正确的信息,但ios的src则是base64加密信息,位置信息在data-local属性中。笔者决定放弃ios中的src信息,并将data-local的属性名替换为src。
getEditorContent(e){
var htmlStr_full = e.detail.html
console.log(htmlStr_full)
if((htmlStr_full).indexOf('img')!=-1){
if(htmlStr_full.indexOf('data-local')!=-1){
console.log('Need to change image html string:')
var editor_input_htmlStr = this._real_phone_image_html_translate(htmlStr_full)
}else{var editor_input_htmlStr = htmlStr_full}
console.log(editor_input_htmlStr)
this.setData({'editor_input_htmlStr': editor_input_htmlStr})}else{
if((e.detail.text).length <= 1){}else{
this.setData({'editor_input_htmlStr':htmlStr_full})}
}
},
,
_real_phone_image_html_translate(imgHtmlStr){
var reg_imgSrc = https://www.it610.com/src="(.*?)"/gi//获取出src属性的内容
var imgHtmlStr_changed = imgHtmlStr.replace(reg_imgSrc,'')
var reg_imgDataLocal = /data-local/gi//获取出data-local属性的内容
imgHtmlStr_changed = imgHtmlStr_changed.replace(reg_imgDataLocal,'src')
return imgHtmlStr_changed
},
【微信小程序|微信开发者工具模拟器、IOS真机调试、Android真机调试中Editor效果不一致问题】以上为核心代码,不是项目相关的全部代码。大家可以参考思路自定义。
推荐阅读
- 微信小程序怎么做社群营销
- iOS开发记录|iOS 关于Safari浏览器和Chrome浏览器Video标签的区别
- 小程序的五大推广方式
- 微信小程序|微信小程序项目实例——幸运大转盘
- 小程序|微信程序开发之小程序入门
- 小程序|微信小程序 - 04_wxss模板样式和全局配置(模板样式_rpx_@import样式导入、全局配置_window_tabBar)
- 数码科技|用了三年的苹果手机,才发现 iPhone 翻译真好用,堪比译员的水准
- 技能分享|iPhone彻底删除的照片能恢复吗,2个找回永久删除照片的方法
- 大数据|苹果赚钱太容易,不玩创新玩配色