魅族手机apiready问题

本来包已经准备交付给客户了,然后客户当天带了一部魅族手机来,然后。。。。。。。意想不到的事情就发生了。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来显示出来

文章导航