小程序
小游戏
企业微信
微信支付
扫描小程序码分享
var header = {};
header = buffer.deviceInfo;
header.uin=buffer.userInfo.uin;
求帮助,谢谢
开发工具上一切正常
在以下环境下运行上面三行代码后,打开小程序直接奔溃 iphone7plus 微信版本 6.5.3
在以下环境下正常iphone6 微信6.5.18
10 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我调试过程中已经把原生调用接口的地方全部注释了,感觉js对象复制赋值的时候奔溃的 就三行代码就可以搞奔溃
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
无招啊,js底层我不太了解,其它微信版本run的好好的
感觉 js exception 很难导致微信崩溃。。。考虑是调用栈过深(发生了死循环)或者调用原生接口时发生了错误吧。
微信界面也被关闭了,直接调到手机界面,再次打开微信不需要登录,多崩溃几次微信就开启安全模式
还有,你说的崩溃是指小程序打开后自动跳回了微信界面么?
其实就是app.js里面的一个变量,
globalData: {
buffer: {},
util: util,
httpPromise: httpPromise,
commonConfig: commonConfig,
}然后注册成globalData里面的buffer属性就是一个全局数据
app.js里面有一个变量 buffer
var buffer = require("/Buffer.js");
onlaunch的时候去服务端拿新的
http.get(buffer.configUrl + "sys/getBaseConfig")
.then(res => {
//buffer.domain = res.data.domain;
console.log("get base config +++++++++++");
console.log(res.data);
console.log("get base config +++++++++++domain");
console.log(res.data.domain);
buffer.configUrl = res.data.domain.apiUrl;
buffer.userInfo.cityId = res.data.cityId;
buffer.userInfo.cityName = res.data.cityName;
buffer.userInfo.cityIndex = res.data.cityIndex;
buffer.shopTypeList = res.data.indexShopTypeList;
buffer.shopTypeListOneMap = res.data.rootShopTypeMap;
buffer.menuRootTypeListMap = res.data.menuRootShopTypeMap;
buffer.indexBannerList = res.data.indexBannerList;
buffer.shopBannerList = res.data.shopBannerList;
buffer.shopCatMapArray = res.data.shopCatMapArray;
buffer.flagGetBaseConfig = true;
if (res.data['cityList'].length > 0) {
buffer.cityList = res.data['cityList'];
}
buffer.indexShopTypeList = res.data.indexShopTypeList;
that.globalData.buffer = buffer;
console.log("buffer+++++++++++++++");
console.log(buffer);
util.autoLogin(that, true);
})
.catch(e => {
console.log(e);
buffer.httpRequestTimeOut = true;
});
最后设置成全局变量
that.globalData.buffer = buffer; 之所以要在本地保存一份,是因为onlaunch里面去请求服务端是异步的,数据还没返回回来,首页就show了,这个真郁闷,一直不知道如何解决,所以只能在本地存一份
今天测试发现她的手机一打开小程序就奔溃,多奔溃几次微信也奔溃了,郁闷啊,求大神帮忙
还是没有回答我的问题,buffer 是什么?
var appInit = function(that){
console.log("app init ++++++++");
buffer.shopTypeList = buffer.indexShopTypeList;
buffer.shopTypeListOneMap = buffer.rootShopTypeMap;
buffer.menuRootTypeListMap = buffer.menuRootShopTypeMap;
buffer.indexBannerList = buffer.indexBannerList;
buffer.shopBannerList = buffer.shopBannerList;
buffer.shopCatMapArray = buffer.shopCatMapArray;
App({
onLaunch: function () {
//调用API从本地缓存中获取数据
console.log('App Launch+++++++++');
buffer.configUrl = commonConfig.getConfigDomain();
buffer.domain = commonConfig.getHostDomain();
//appInit(this);
//getBaseConfig(this);
//console.log(buffer);
console.log(this);
//var logs = wx.getStorageSync('logs') || []
//logs.unshift(Date.now())
//wx.setStorageSync('logs', logs)
},
function setHeader(buffer)
{
/*
header.token = buffer.userInfo.token;
header.lat = buffer.location.lat;
header.lon = buffer.location.lon;
*/
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success: function (res) {
var latitude = res.latitude
var longitude = res.longitude
return header;
buffer 是什么?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我调试过程中已经把原生调用接口的地方全部注释了,感觉js对象复制赋值的时候奔溃的 就三行代码就可以搞奔溃
无招啊,js底层我不太了解,其它微信版本run的好好的
感觉 js exception 很难导致微信崩溃。。。考虑是调用栈过深(发生了死循环)或者调用原生接口时发生了错误吧。
微信界面也被关闭了,直接调到手机界面,再次打开微信不需要登录,多崩溃几次微信就开启安全模式
还有,你说的崩溃是指小程序打开后自动跳回了微信界面么?
其实就是app.js里面的一个变量,
globalData: {
buffer: {},
util: util,
httpPromise: httpPromise,
commonConfig: commonConfig,
}然后注册成globalData里面的buffer属性就是一个全局数据
app.js里面有一个变量 buffer
var buffer = require("/Buffer.js");
onlaunch的时候去服务端拿新的
http.get(buffer.configUrl + "sys/getBaseConfig")
.then(res => {
//buffer.domain = res.data.domain;
console.log("get base config +++++++++++");
console.log(res.data);
console.log("get base config +++++++++++domain");
console.log(res.data.domain);
buffer.configUrl = res.data.domain.apiUrl;
buffer.userInfo.cityId = res.data.cityId;
buffer.userInfo.cityName = res.data.cityName;
buffer.userInfo.cityIndex = res.data.cityIndex;
buffer.shopTypeList = res.data.indexShopTypeList;
buffer.shopTypeListOneMap = res.data.rootShopTypeMap;
buffer.menuRootTypeListMap = res.data.menuRootShopTypeMap;
buffer.indexBannerList = res.data.indexBannerList;
buffer.shopBannerList = res.data.shopBannerList;
buffer.shopCatMapArray = res.data.shopCatMapArray;
buffer.flagGetBaseConfig = true;
if (res.data['cityList'].length > 0) {
buffer.cityList = res.data['cityList'];
}
buffer.indexShopTypeList = res.data.indexShopTypeList;
that.globalData.buffer = buffer;
console.log("buffer+++++++++++++++");
console.log(buffer);
util.autoLogin(that, true);
})
.catch(e => {
console.log(e);
buffer.httpRequestTimeOut = true;
that.globalData.buffer = buffer;
});
最后设置成全局变量
that.globalData.buffer = buffer; 之所以要在本地保存一份,是因为onlaunch里面去请求服务端是异步的,数据还没返回回来,首页就show了,这个真郁闷,一直不知道如何解决,所以只能在本地存一份
今天测试发现她的手机一打开小程序就奔溃,多奔溃几次微信也奔溃了,郁闷啊,求大神帮忙
还是没有回答我的问题,buffer 是什么?
var buffer = require("/Buffer.js");
var appInit = function(that){
console.log("app init ++++++++");
buffer.shopTypeList = buffer.indexShopTypeList;
buffer.shopTypeListOneMap = buffer.rootShopTypeMap;
buffer.menuRootTypeListMap = buffer.menuRootShopTypeMap;
buffer.indexBannerList = buffer.indexBannerList;
buffer.shopBannerList = buffer.shopBannerList;
buffer.shopCatMapArray = buffer.shopCatMapArray;
console.log(buffer);
that.globalData.buffer = buffer;
}
App({
onLaunch: function () {
//调用API从本地缓存中获取数据
console.log('App Launch+++++++++');
buffer.configUrl = commonConfig.getConfigDomain();
buffer.domain = commonConfig.getHostDomain();
//appInit(this);
//getBaseConfig(this);
//console.log(buffer);
console.log(this);
//var logs = wx.getStorageSync('logs') || []
//logs.unshift(Date.now())
//wx.setStorageSync('logs', logs)
},
function setHeader(buffer)
{
var header = {};
header = buffer.deviceInfo;
header.uin=buffer.userInfo.uin;
/*
header.token = buffer.userInfo.token;
header.lat = buffer.location.lat;
header.lon = buffer.location.lon;
*/
/*
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success: function (res) {
var latitude = res.latitude
var longitude = res.longitude
}
})
*/
return header;
}
buffer 是什么?