1.刷新页面(相当于微信右上角弹出框里的刷新)
场景:该页面为上一页面判断某一条件成功后直接跳转的,点击页面某按钮跳转外部链接,打开了提示用浏览器打开的页面(好多外部链接只能用浏览器打开)。点击微信公众号底部返回键返回后,页面内容清空,iOS有问题,安卓没问题。刷新后恢复正常。(排查半天不知道为啥,加个刷新就完事了,进页面调用一下)
- window.onpageshow = function(event) {
- if (event.persisted) {
- window.location.reload();
- }
- };
2.拨打电话(uni.makePhoneCall)
//只有一个电话时直接调用该方法即可,安卓直接跳到手机拨打电话页面,会自动把手机号带过去,iOS会有一个弹框提示
- uni.makePhoneCall({
- phoneNumber: phoneNumber
- })
//有多个手机号时,需要弹出一个选择框供用户选择拨打哪个电话
- // uni.showActionSheet从底部向上弹出操作菜单
- uni.showActionSheet({
- itemList: phoneNumber,
- success: (res) => {
- uni.makePhoneCall({
- phoneNumber: phoneNumber[res.tapIndex]
- })
- }
- })
3.微信公众号 返回上一页回到页面顶部
如果不生效,可以给最外层加个样式:
- .content{
- height:auto !important;
- }
- setTimeout(()=>{
- uni.pageScrollTo({scrollTop: 0,duration: 0});
- })
4.图片地址无效时,展示其他文字或图片或提示
1)
- <img v-show="goodInfo.imgLoaded" src="图片" alt="" @error="onErrorImg" @load="onSuccessImg">
- <img v-show="!goodInfo.imgLoaded" src="默认图片" alt="" >
-
-
- onSuccessImg() {
- this.$set(this.goodInfo, 'imgLoaded5', true)
- },
- onErrorImg() {
- this.$set(this.goodInfo, 'imgLoaded5', false)
- },
2)
<img src="" alt="" onerror="this.src='../../static/images/noImg.png'">
以上的方法,用的时候我有遇到先闪一次默认图片再展示正常图片的情况。这时候,可以使用js进行判断图片是否有效:
3)
- isImgUrlValid(imgurl) {
- return new Promise((resolve, reject) => {
- const ImgObj = new Image(); // 判断图片是否存在
- ImgObj.src = imgurl;
- ImgObj.onload = (res) => {
- resolve(imgurl);
- };
- ImgObj.onerror = (err) => {
- resolve(require('../../static/images/noImg.png'));
- };
- }).catch((e) => { }); // 加上这句不会报错(Uncaught (in promise))
- },