首页 >> js开发 >> js微信小程序调用wx.getImageInfo遇到的坑解决js大全
js微信小程序调用wx.getImageInfo遇到的坑解决js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
这几天做到微信小程序详情页分享的功能,需要把原页面的一些参数带到分享页,然后在分享页需要获取图片的宽高等基本信息。1.先说分享传参的方式:
在onShareAppMessage方法里面返回的path里面可以带参数传过去,具体传参的方式有两种,一种是可以传对象(需要把JSON对象stringiny),另外一种是通过一般的参数拼接的方式一个个拼。
代码:
onShareAppMessage: function (res) {
let data = this.data;
let shareParams = {
imgSrc: data.imgInfo.src
}
let shareData = JSON.stringify(shareParams)
let path = '/src/?shareData='+ shareData;
return {
title: '我在用家图AI识图找家具,快跟上节奏!',
path: path,
success: function(res) {
// 转发成功
console.log('转发成功')
},
fail: function(res) {
// 转发失败
console.log('转发失败')
}
}
},
onShareAppMessage: function (res) {
let data = this.data;
let shareParams = {
imgSrc: data.imgInfo.src
}
let shareData = JSON.stringify(shareParams)
let path = '/src/?shareData='+ shareData;
return {
title: '我在用家图AI识图找家具,快跟上节奏!',
path: path,
success: function(res) {
// 转发成功
console.log('转发成功')
},
fail: function(res) {
// 转发失败
console.log('转发失败')
}
}
},
2.再说在打开分享过来的页面时怎么拿到刚才那些参数 其实那些参数是在onLoad方法里面的options传过来的,如下代码:
onLoad: function(options) {
//通过分享进来的
if(options.shareData){
console.log(options.shareData)//这个就是刚才传过来的那个JSON对象
}
}
onLoad: function(options) {
//通过分享进来的
if(options.shareData){
console.log(options.shareData)//这个就是刚才传过来的那个JSON对象
}
}
3.遇到的坑
一开始在调用wx.getImageInfo时一直不掉成功,查了官方文档,发现需要用https的方式下载图片,但是我改成了https的方式也还是调不成功。这时候跟后端的同学咨询了下,看是不是https出了问题,果然,https在这两天刚好证书过期了。等https能正常使用的时候也就可以调用成功了。中间调试过程有点坑,当打开调试时偶尔会调用成功getImageInfo,就是这个有时候能调成功,有时候不能,把我坑惨了。还有在不打开调试时调用非https或者https不可用的时候,getImageInfo既不跳到成功的回调也不跳到失败的回调,也不报错,就像卡死在那了一样。这就很惨,没法调试。
tips:需要把图片服务器的域名加到downloadFile 合法域名里面
在onShareAppMessage方法里面返回的path里面可以带参数传过去,具体传参的方式有两种,一种是可以传对象(需要把JSON对象stringiny),另外一种是通过一般的参数拼接的方式一个个拼。
代码:
onShareAppMessage: function (res) {
let data = this.data;
let shareParams = {
imgSrc: data.imgInfo.src
}
let shareData = JSON.stringify(shareParams)
let path = '/src/?shareData='+ shareData;
return {
title: '我在用家图AI识图找家具,快跟上节奏!',
path: path,
success: function(res) {
// 转发成功
console.log('转发成功')
},
fail: function(res) {
// 转发失败
console.log('转发失败')
}
}
},
onShareAppMessage: function (res) {
let data = this.data;
let shareParams = {
imgSrc: data.imgInfo.src
}
let shareData = JSON.stringify(shareParams)
let path = '/src/?shareData='+ shareData;
return {
title: '我在用家图AI识图找家具,快跟上节奏!',
path: path,
success: function(res) {
// 转发成功
console.log('转发成功')
},
fail: function(res) {
// 转发失败
console.log('转发失败')
}
}
},
2.再说在打开分享过来的页面时怎么拿到刚才那些参数 其实那些参数是在onLoad方法里面的options传过来的,如下代码:
onLoad: function(options) {
//通过分享进来的
if(options.shareData){
console.log(options.shareData)//这个就是刚才传过来的那个JSON对象
}
}
onLoad: function(options) {
//通过分享进来的
if(options.shareData){
console.log(options.shareData)//这个就是刚才传过来的那个JSON对象
}
}
3.遇到的坑
一开始在调用wx.getImageInfo时一直不掉成功,查了官方文档,发现需要用https的方式下载图片,但是我改成了https的方式也还是调不成功。这时候跟后端的同学咨询了下,看是不是https出了问题,果然,https在这两天刚好证书过期了。等https能正常使用的时候也就可以调用成功了。中间调试过程有点坑,当打开调试时偶尔会调用成功getImageInfo,就是这个有时候能调成功,有时候不能,把我坑惨了。还有在不打开调试时调用非https或者https不可用的时候,getImageInfo既不跳到成功的回调也不跳到失败的回调,也不报错,就像卡死在那了一样。这就很惨,没法调试。
tips:需要把图片服务器的域名加到downloadFile 合法域名里面
相关文章:
- js关于angular浏览器兼容性问题的解决方案js大全
- jsVue自动构建发布脚本的方法示例js大全
- js解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题js大全
- js解决vue页面渲染但dom没渲染的操作js大全
- js谈一谈vue请求数据放在created好还是mounted里好js大全
- js解决vue的router组件component在import时不能使用变量问题js大全
- js在vue中使用防抖函数组件操作js大全
- jsVue中的this.$options.data()和this.$data用法说明js大全
- jsElement Breadcrumb 面包屑的使用方法js大全
- js解决vue动态路由异步加载import组件,加载不到module的问题js大全