Phonegap服务没有被调用

时间:2014-05-06 06:35:43

标签: javascript android jquery cordova

我在3.4 Phonegap / Cordova中遇到了一个非常奇怪的错误。

我已经通过网络上的fiddler测试了服务调用以及使用了WEINRE。

在浏览器上运行时没有任何错误,当编译为在build.phonegap.com上运行时,它会挂起第一个服务。

html

<!-- Page 1 -->
<div data-role="page" id="keyword" class="page">
<div class="bg"></div>
<div class="page-wrapper">
    <div class="logo"><img src="images/logo.png" alt="" width="325" height="105"/></div>
    <div class="text1">Enter Code</div>
    <div class="input">
        <input type="text" name="keyword" placeholder="code" id="keyword-value" />
    </div>
    <div class="button" id="keyword-submit" >Submit</div>
    <div class="text2">
        If you do not have a<br>
        code, click continue
    </div>
    <div class="button" id="keyword-continue">Continue</div>
</div>

我在运行关键字提交功能时遇到了问题,虽然它在浏览器中执行,但它并没有导航。

app.js

$("#keyword").live("pageinit",
        function()
        {
            $("#keyword-continue").click(
                function()
                {
                    $.mobile.changePage("#zip-code");
                });

            $("#keyword-submit").click(
                function()
                {
                    alert("Entered Keyword Submit");
                    var keyword = $("#keyword-value").val();
                    if($.trim(keyword) == '')
                    {
                        navigator.notification.alert('Please Enter code');
                        return false;
                    }
                    service.getListByKeyword(keyword,
                        function(response)
                        {
                            $.mobile.showPageLoadingMsg("loading"); 
                            var check = JSON.parse(response).responsecollection.Response.rss.rs;
                            if(check.isvalid == 0)
                            {
                                if (check.msg!=null)
                                {
                                    navigator.notification.alert(check.msg);
                                    $.mobile.hidePageLoadingMsg();
                                }
                            }
                            else
                            {
                                window.localStorage.setItem("email",check.email);
                                alert("storing email");
                                service.resellerId = check.rsid;
                                localStorage.resellerId = service.resellerId;
                                alert("set reseller Id");
                                service.getResellerSetting(
                                    function(response)
                                    {
                                        alert("entered merchant");
                                        service.resellerEmail = JSON.parse(response).responsecollection.Response.rts.rt.mlid;
                                        localStorage.resellerEmail = service.resellerEmail; 
                                        var telefloraStatus = JSON.parse(response).responsecollection.Response.rts.rt.UseTeleflora;
                                        window.localStorage.setItem("floraStatus",floraStatus);
                                    });
                                    alert("Navigating to new page");
                                $.mobile.changePage("#keyword-list?keyword="+keyword);
                                //window.open("#keyword-list?keyword="+keyword,keywordPage);
                            }
                        });
                        alert();
                        $.mobile.hidePageLoadingMsg();
                });
        });

我已设置警报,以查看其在浏览器中导航的位置以及在移动端被捕获。

最后一组代码是index.js

  getListByKeyword: function (keyword, result) {
    service.sendRequest("Reseller", "IsValid", function(args) {
        args.rscode = keyword;
    }, result);
    alert("Inside the service call *END*");
}

我似乎无法理解为什么它可以在broswer而不是android构建中工作。

1 个答案:

答案 0 :(得分:0)

//please follow these steps to check your phonegap project is ready to perform action or not.
//1)include cordova js or phonegap file reference
<script type="text/javascript" src="cordova.js"></script> 
//2)check phonegap is ready or not
<script type="text/javascript">
    document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
        alert('ready');
    }
</script>

之后执行任何操作