小程序开发中遇到的问题

小程序开发


浏览:987 次

在9个工作日内完成了小程序开发和烟雾自测~

这个小程序主要涉及二维码扫描、照片识别、倒计时、输入限制、标签切换、腾讯地图、画布app,共10页,10个界面;它仍然相对简单,但在开发过程中遇到了一些问题,因此记录如下~~

1.登录过程问题

小程序的正式登录过程是

了解官方登录流程没有问题;不过,仍然存在一些问题,比如用户第一次登录时该怎么办,第二次登录时怎么走;

appid和appsecret是在微信公众平台上获取的;对于前端,只需要appid;

如图所示,openid(唯一用户ID),session_key(加密/解密所需的字符串)在后台处理,不需要经过前端;

在项目后台,令牌被设置为不过期;

以下是项目登录过程的解释

用户进入页面以确定是否存在本地令牌。如果不是,请使用Wx。登录时使用的代码调用后台登录界面,以确定是否是第一次登录。如果是第一次登录,请进入注册过程。注册过程有两个步骤,一个是获取用户信息,另一个是获得用户的手机号码。根据最新的官方开发要求,用户需要自己触发这两件事情的按钮;已经创建了两个页面(用户体验不好);注册后,访问主页并调用登录界面以获取令牌并将其存储在本地;然后按照正常流程~~~

2.背景图片设置问题;

您必须使用链接来使用背景图像(将其放在服务器上)

3.定制照片页;

只需将封面标签插入相机标签

4.输入输入4位数字以插入空格;

inputEvent:函数(e){

这kongge_字符串(e.detail.value);

},

//输入自动添加空间

kongge_字符串:函数(e){

var kongge_sn=e.replace(/[^A-Za-z0-9]/g,'');

var结果=[];

对于(var i=0;i

如果(i==4||i==8||i=12||i=26){

后果推送(“”+kongge_sn.charAt(i));

}

其他{

结果推送(kongge_sn.charAt(i));

}

}

kongge_sn=结果.join(“”);

this.set数据({

sn:kongge_sn.toUpperCase()

})

}

5.封装wx。请求问题;

实用程序.js

const请求=(url,数据)=>{

return new Promise(函数(reslove,reject){

//网络请求

wx.请求({

url:url,

数据:数据,

方法:'POST',//OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT

标题:{

'内容类型':'app/x-www-form-urlencoded'

},//设置请求头

成功:函数(res){

//success网络请求成功

如果(res.statusCode!=200){

拒绝({错误:“服务器正忙,请稍后再试”,代码:500});

回来

}

解析(res.data.data);

},

失败:函数(res){

//调用接口失败

拒绝({error:'网络错误',代码:0});

},

完成:函数(res){

//完成

}

})

})

}

模块导出={

请求:请求

}

注意:页面引用js:const util=require('../../utils/util.js')

页面引用css:@import“weui.wxss”;

6.下拉以刷新真实机器;

将“enablePullDownRefresh”:true、“backgroundTextStyle”:“dark”添加到要下拉和刷新的页面的json文件中,然后添加wx。stopPullDownRefresh()到json文件;否则,拉下时会出现没有反弹的问题

7.ShowLoading和wx。showToast显示时间问题

当wx。hideLoading()用于wx前面。showToast(),后者showTost根本不会出现;

需要按以下方式处理

wx.hideLoading()

setTimeout(()=>{

wx.showToast({

标题:“没有更多数据~”,

icon:'无'

})

setTimeout(()=>{

wx.hideToast();

}, 3000)

},0)

8.iPhone 6真机地图页面上的文字未显示;

//尚未解决

9.base64上传中断真机和计算机调试图片的问题;

事实上,公司网络不好

10.倒计时

倒计时:函数(){

让它=这个;

让countDownNum=that.data.countDownNum;

that.setData(设置数据)({

计时器:setInterval(函数(){

countDownNum-;

that.setData(设置数据)({

countDownNum:向下计数

})

如果(countDownNum==0){

initApi();