自己封装了wx.request,用到了es6-Promise
var Promise = require('./promise.js')
var env = 'test';
function serverConfig(env) {
if (!env) {
throw new Error('不合法的环境参数');
}
return {
test: '...',
}[env];
}
function fetch(ops) {
console.log(Promise)
console.log(ops,1)
wx.showLoading({
title: '加载中...',
})
return new Promise((resolve, reject) => {
wx.request({
url: `${serverConfig(env)}${ops.url}`,
data: ops.data,
header: {
'content-type': 'application/json',
},
method: ops.method || 'GET',
success: function (res) {
if (res.statusCode !== 200 || !res.data.success) {
ops.error && ops.error(res); // 处理如果请求失败,要做的操作
reject(res.data);
} else {
resolve(res.data);
}
},
fail: function (res) {
ops.error && ops.error(res); // 处理如果请求失败,要做的操作
reject({
errorMessage: '请求失败请重试'
})
},
complete: function(){
wx.hideLoading()
}
})
}).catch((error) => {
// 502会直接触发这里
wx.showModal({
showCancel: false,
content: error.errorMessage || '请求失败请重试'
})
});
}
module.exports = {
fetch
}
----------------------------------------
又封装了login
//app.js
var Promise = require('./utils/promise.js')
App({
store: {
code: '',
openid: '',
userInfo: {}
},
init: function () {
let _that = this;
return new Promise((resolve, reject) => {
wx.login({
success: function (res) {
if (res.code) {
_that.store.code = res.code
var appid = 'wx3c8ed9700a6eb9e4';
var secret = 'fd693d4689807e6c3f6b30bad8995ab6'
wx.request({
url: `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${secret}&js_code=${res.code}&grant_type=authorization_code`,
header: { 'content-type': 'application/json' },
success: function(data){
_that.store.openid = data.data.openid
resolve(_that.store)
}
})
}
},
fail: function (res) {
reject(Object.assign(res, {
errorMessage: '用户登录失败'
}))
}
})
}).then(data => new Promise((resolve, reject) => {
wx.getUserInfo({
success: function (res) {
_that.store.userInfo = res.userInfo
resolve(_that.store)
},
fail: function (res) {
reject(Object.assign(res, {
errorMessage: '获取用户信息失败'
}))
}
})
})).catch((error) => {
let errorMessage = error.errorMessage || '授权失败';
wx.showModal({
showCancel: false,
content: errorMessage
})
})
}
})
-----------------------------
在微信小程序进入的第一个页面里调用
onShow: function (res) {
var _that = this;
app.init().then((res)=>{
console.log(res)
utils.fetch({
url: '/user/initData',
method: 'POST',
data: {
openid: res.openid
},
success: function(res){
_that.setData({
userInfo: res.userInfo,
isLogn: res.userInfo.isRegister,
isSign: res.userInfo.isSign,
goodsList: res.productLists
})
}
})
});
// this.setData({
// modelShow: res.show
// })
}
手机调试模式,开发者工具里一切都正常,web-view组件调到网页,微信小程序的头部标题怎么修改???。先出现loading,报错之后出现模态框
手机预览和体验版本里wx.loading都出不来
安卓和ios都这样
ios版本11.1.2,微信基础库1.7.1
这是什么情况,求大神解答
微信小程序开发相关问题解答;本文来自微信小程序工厂 http://www.xcxgc.com 转载请保留。
微信小程序开发者回答:
罔***:
有没有大神解答一下
夏***:
我的也是一样,无法获取到用户授权信息,在12月15号一切还都正常,从2月16号以后就出现问题了
底部tabBar能不能单独放一个大一点的iconPath
本文网址:http://www.91bianli.com/kaifazhinan/73264.html