一、background-image 大图不显示的问题
解决方法:
1、使用网络地址;2、使用 base64
urlTobase64(filePath) {
// #ifdef MP-WEIXIN
let img = `${filePath}`,
imgBase64 = wx.getFileSystemManager().readFileSync(img, "base64"),
base64Url = `data:image/png;base64,${imgBase64}`;
console.log("data:image/png;base64", "图片转换成功");
return base64Url
// #endif
},
<!-- #ifdef MP-WEIXIN -->
<view class="inner-box" :style="{backgroundImage:`url(${$utils.urlTobase64('/static/image/top.png')})`}">
<!-- #endif -->
<!-- #ifdef APP -->
<view class="inner-box">
<!-- #endif -->
</view>
.inner-box {
background-image: url('/static/image/top.png');
}
二、uni.$ emit() uni.$on() 不生效
解决方法:
放到 onReady() 方法里 ,onLoad() 方法 监听不到
三、高德定位
解决方法:
高德微信小程序SDK amap-wx.130.js下载地址
import amapWX from '../utils/amap-wx.130.js'
let utils = {
getAmapWXLocation() {
// #ifdef MP-WEIXIN
return new Promise((resolve, reject) => {
const amapPlugin = new amapWX.AMapWX({
key: '9a000f67903479b1f49cc05c59057108'
});
amapPlugin.getRegeo({
success: (res) => {
let data = res[0]
console.log('定位成功', data)
let position = {
longitude: data.longitude,
latitude: data.latitude,
address: data.regeocodeData.formatted_address,
}
console.log('position: ', position);
resolve(position)
},
fail(err) {
reject(err)
console.log('定位失败', err)
}
});
})
// #endif
}
}
export default utils;
调用
getLocationInfo() {
// #ifdef MP-WEIXIN
this.$utils.getAmapWXLocation().then(loc => {
this.sLatitude = loc.latitude;
this.sLongitude = loc.longitude;
this.sLocation = loc.address;
console.log('loc: ', loc);
})
// #endif
}
四、image 无法加载
分析问题所在:/pages/template/undefined
/,路径有问题;
因为 $imgBaseUrl 这个路径 是写在 main.js 里边的
<image :src="`${$imgBaseUrl}${img}`">
解决方法
export default {
data() {
return {
imgBaseUrl: this.$imgBaseUrl,
}
}
}
<image :src="`${imgBaseUrl}`">