此篇用于记录uni-app 开发时遇到问题的解决方法。
一、 input 设置 disabled 之后,无法响应点击事件
一般表单项,配合选择器或者其他不是直接输入的情况,都是设置disabled然后自定义点击事件,在小程序上可以点击,但是h5不响应点击。解决办法就是 style 加上 pointer-events:none; 这里用的是uView的组件,uni的也是一样。
<u-input
v-model="info.customerName"
readonly
custom-style="pointer-events:none">
</u-input>
二、canvas 小程序报错 canvasToTempFilePath:fail fail canvas is empty
网上其他文章说 ,需要额外加 this 指定上下文,转图片的时候加个延时,一般这么改就行了,但是还是可能会有问题。因为还有个细节可能部分人会遇到:
微信文档上说 <canvas />元素要加 type="2d" ,但是在uni-app上,加了反而不对,把type="2d",删了就正常了。
<canvas
type="2d"
canvas-id="shareCanvas"
id="shareCanvas" >
</canvas>
const canvas = uni.createCanvasContext('shareCanvas',this)
canvas.fillStyle = '#333'
canvas.setFontSize(12)
canvas.fillText('测试',15,15)
canvas.draw()
setTimeout(()=>{
uni.canvasToTempFilePath({
canvasId: 'shareCanvas',
success: (res)=> {
// 在H5平台下,tempFilePath 为 base64
console.log(res);
this.canvasImage = res.tempFilePath
},
fail:e=>{
console.log(e);
}
},this)
},200)
三、安卓证书的md5、sha1、sha256
获取安卓证书的数据,一般都是说用jdk的keytool工具,但是可能有坑。有些版本的keytool,获取到的md5、sha1有值,sha256则只显示sha256withRSA,实际上是sha1、sha256。原因我没有细究,可能是后续的新版本keytool弃用了md5。
要获取可靠的md5、sha1,可以手机应用市场直接下载 APP备案助手。sha256则要另行获取,用java1.8的jdk。
另外md5的写法有些系统的格式是abcdefgh,有些系统的格式是 ab:cd:ef:gh,这是两种不同写法,本质还是一样的。