三行代码打开小程序直接崩溃

发布于 7 年前作者 yuanna8205 次浏览最后编辑 7 年前来自 ask

var header = {};

header = buffer.deviceInfo;

header.uin=buffer.userInfo.uin;

求帮助,谢谢

开发工具上一切正常

在以下环境下运行上面三行代码后,打开小程序直接奔溃iphone7plus    微信版本 6.5.3

在以下环境下正常iphone6 微信6.5.18

求帮助,谢谢

10 回复
rcui
rcui1 楼6 年前

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;

}

tao42
tao422 楼6 年前

我调试过程中已经把原生调用接口的地方全部注释了,感觉js对象复制赋值的时候奔溃的就三行代码就可以搞奔溃

ncheng
ncheng3 楼6 年前

微信界面也被关闭了,直接调到手机界面,再次打开微信不需要登录,多崩溃几次微信就开启安全模式

tao44
tao444 楼6 年前

无招啊,js底层我不太了解,其它微信版本run的好好的

chao61
chao615 楼6 年前

还有,你说的崩溃是指小程序打开后自动跳回了微信界面么?

oluo
oluo6 楼6 年前

感觉 js exception 很难导致微信崩溃。。。考虑是调用栈过深(发生了死循环)或者调用原生接口时发生了错误吧。

junluo
junluo7 楼6 年前

还是没有回答我的问题,buffer 是什么?

duanyong
duanyong8 楼6 年前

其实就是app.js里面的一个变量,

globalData: {

buffer: {},

util: util,

httpPromise: httpPromise,

commonConfig: commonConfig,

}然后注册成globalData里面的buffer属性就是一个全局数据

wumin
wumin9 楼6 年前

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了,这个真郁闷,一直不知道如何解决,所以只能在本地存一份

今天测试发现她的手机一打开小程序就奔溃,多奔溃几次微信也奔溃了,郁闷啊,求大神帮忙

futao
futao10 楼5 年前

buffer 是什么?