🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 本来包已经准备交付给客户了,然后客户当天带了一部魅族手机来,然后。。。。。。。意想不到的事情就发生了。apiready!没有用,对你没看错,没有用!!!!! ~~~ apiready = function(){ indexlist(); } ~~~ ~~~ function indexlist(){ api.showProgress({ style: 'default', animationType: 'fade', title: '', text: '玩命加载中...', modal: false }); api.ajax({ url: '***', method: 'post', },function(ret, err){ if (ret) { api.hideProgress(); var res2=ret.result.goods.recommend_goods//获得推荐数组 fnUpdarecom(res2);//推荐列表 } else { alert( JSON.stringify( err ) ); } }); } ~~~ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑这是普通的apiready的方法,亲测除了安卓手机以外的都管用都能从服务器上获取到数据,但是呢~**魅族**不行!!不行!!!根本没反应,根本不识别好吗?我就赶快去官网论坛去查,然后发现去年12月就有问题 ,,,现在依旧没解决。。。。 福利!!!!!!!(解决办法如下) ~~~ <div id="haha" style="display:none"></div> <!--很坑我也不能让你显示出来,哈哈,这个要放在html里面哦--> ~~~ ~~~ apiready = function(){ indexlist(); } ~~~ ~~~ $(function(){ $("#haha").trigger("click"); });//jquery方法,等页面加载完用trigger方法来模拟按了id为haha的div ~~~ ~~~ function indexlist(){ if (typeof(api)==='object') { //api是个一个对象,我们在这里判断它是不是执行了 api.showProgress({ style: 'default', animationType: 'fade', title: '', text: '玩命加载中...', modal: false }); api.ajax({ url: '***', method: 'post', },function(ret, err){ if (ret) { api.hideProgress(); var res2=ret.result.goods.recommend_goods//获得推荐数组 fnUpdarecom(res2);//推荐列表 } else { alert( JSON.stringify( err ) ); } }); } } ~~~ //解释:在每一个字方法中,判断api是否定义,如果已经定义,则执行子方法中的逻辑,如果未定义,则不执行。。。。。。例如魅族sb 不会执行apiready 只执行了jquery click 所以拿到了数据,其他手机,apiready 和 jquery 均会执行,则需要判断,api是否被定义,如果被定义,则执行(jquery 方法api未定义,apiready 中的api 已定义)所以显示效果是通过api来显示出来