魅族手机apiready问题
最后更新于:2022-04-01 23:48:34
> 本来包已经准备交付给客户了,然后客户当天带了一部魅族手机来,然后。。。。。。。意想不到的事情就发生了。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月就有问题 ,,,现在依旧没解决。。。。
福利!!!!!!!(解决办法如下)
~~~
~~~
~~~
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来显示出来
';