收藏
回答

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

var header = {};

header = buffer.deviceInfo;

header.uin=buffer.userInfo.uin;


求帮助,谢谢

开发工具上一切正常

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



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


求帮助,谢谢


回答关注问题邀请回答
收藏

10 个回答

  • 令狐笑笑
    令狐笑笑
    2017-10-12

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

    2017-10-12
    有用
    回复
  • 令狐笑笑
    令狐笑笑
    2017-10-12

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

    2017-10-12
    有用
    回复
  • 吴剑波
    吴剑波
    2017-10-12

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

    2017-10-12
    有用
    回复
  • 令狐笑笑
    令狐笑笑
    2017-10-12

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

    2017-10-12
    有用
    回复
  • 吴剑波
    吴剑波
    2017-10-11

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

    2017-10-11
    有用
    回复
  • 令狐笑笑
    令狐笑笑
    2017-10-11

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

    globalData: {

    buffer: {},

    util: util,

    httpPromise: httpPromise,

    commonConfig: commonConfig,

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


    2017-10-11
    有用
    回复
  • 令狐笑笑
    令狐笑笑
    2017-10-11

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


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



    2017-10-11
    有用
    回复
  • 吴剑波
    吴剑波
    2017-10-11

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

    2017-10-11
    有用
    回复
  • 令狐笑笑
    令狐笑笑
    2017-10-11


    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;

    }


    2017-10-11
    有用
    回复
  • 吴剑波
    吴剑波
    2017-10-11

    buffer 是什么?

    2017-10-11
    有用
    回复
登录 后发表内容