uniapp 开发微信小程序 所遇问题

@[TOC](开发微信小程序所遇问题 uni.previewImage())

1.小程序生命周期

onlaunch:当小程序初始化完成时,会触发onlaunch ,全局只触发一次(app.js)
onLoad:页面加载 ---- 页面注册完成后加载页面,触发onLoad方法,一个页面只会调用一次,可以在onLoad中回去打开当前页面所调用的query参数,
onShow:页面显示 — 页面加载后触发onShow。显示页面。每次打开页面都会调用一次
onReady:首次显示页面,页面初次渲染完成,会触发onReady 方法,渲染页面元素和样式,一个只会调用一次,代表页面已经准备完成,可以和视图层进行交互。对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。
onHide:页面隐藏------ 当navigateTo、底部tab切换、上传文件选择图片时调用。
onUnload:页面加载
当返回上一页wx.navigateBack、wx.relanch、wx.redirectTo时都会被调用(这里的坑有点深)。
基本上可以说执行顺序为onLaunch–onLoad–onShow–onReady–onHide.
虽然说onLaunch在onLoad之前执行,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执行了。

解决办法:
在APP里面onLanch中的网络请求中设置判断

	 if (this.userInfoReadyCallback) {
	    this.userInfoReadyCallback(res)
	}

在page的onLoad中设置一个回调

app.userInfoReadyCallback = res => {
	if (res != '') {
		console.log("app.globalData.userInfo")
	}
}

2.uni.previewImage() 图片黑屏加载问题

getImgSrc() {
	
	return `${base}${mineQrcode}&openid=${this.$store.state.Info.token}` //获取后端返回小程序二维码接口
	},
	const urls = [this.getImgSrc()] // https:xxxxx 
	uni.previewImage({
		 urls,
		  longPressActions: {
		    itemList: ['发送给朋友', '保存图片', '收藏'],
		    success: function (data) {
		    },
		    fail: function (err) {
				uni.showToast({
						title:err,
						icon:'none'
					})
		    }
		  }
		});

可能的问题

  1. this.getImgSrc()未获取到数据
  2. url 必须是一个数组
  3. http的原因 Ios端只支持https
  4. https本来就显示的,wifi中有配置代理,导致ssl证书不过(1.取消代理,2.切换使用数据,退出重新登录)(可以通过把https加载到图片地址中,报错就替换成http)

3.uni.showModal() 中content内容换行

可以使用“\r\n”换行 在真机预览中查看效果

	uni.showModal({
		content:"内容:\r\n 1.工作重点 \r\n 2.注意事项",
	    showCancel:false,
		confirmText:'知道了',
		success:()=>{
		
		}
	})

4. 把二进制流数据转换成base64格式

	const param ={} 
	//  arrayBuffer   uni.request({})  要带有 responseType: arraybuffer请求头
	this.$api.Http(mineQrcode, 'get',param,'arrayBuffer').then(r => {
		  let arrayBuffer = new Uint8Array(r.data)
		  this.imageList = 'data:image/jpg;base64,' + uni.arrayBufferToBase64(arrayBuffer);
		  
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值