【问题标题】:PhoneGap (Cordova) app crashes when loading google chart API加载谷歌图表 API 时,PhoneGap (Cordova) 应用程序崩溃
【发布时间】:2012-07-23 17:11:46
【问题描述】:

我正在 iOS 模拟器上测试此应用

每当我运行这段代码时:

google.load("visualization", "1", {packages:["corechart"]});

我的 phonegap 应用程序崩溃到完全白屏。我有一个页面,其中有一些随机内容和一个按钮,它被分配了一个 .click() jQuery 侦听器以开始加载谷歌图表 api。每当我单击该按钮时,一切都会消失,我只剩下一个空白屏幕。

代码如下:

$( '#chartsThirdStep' ).live( 'pageinit',function(event){

    $("#chartThirdStepGoButton").click(function(event){

        parseChartInfo();
    });
});

function parseChartInfo() {

    console.log("parseChartInfo()");
    google.load("visualization", "1", {packages:["corechart"]});
    // app completely crashes here - all jquery mobile stuff dissapears
    // and i'm left with a blank screen on the simulator.
    //google.setOnLoadCallback(drawChart);
}

我正在使用:

【问题讨论】:

    标签: javascript jquery-mobile cordova google-visualization


    【解决方案1】:

    首先,您需要在“就绪”事件处理程序之外加载 API,因为加载程序在其他函数中似乎无法正常工作。
    其次,将 click 事件处理程序放在 google.load 回调中,这将防止在 API 加载之前分配 click 事件(因此用户不能在 API 加载之前尝试绘制图表,尽管它通常加载速度足够快您的用户永远不会注意到差异)

    【讨论】:

    • 我也遇到了白屏问题,我不得不作弊。对于我的 PhoneGap+JQM 应用程序,我实际上在初始化时执行了 google.load,并且 setOnLoadCallback 设置了一个标志,表明它已准备好。然后我有一个 setInterval() 监视标志是否被设置。
    • 我能够从这个解决方案继续前进。忘记表扬了,现在就做 - 谢谢!
    • +1。不得不将google.load() sn-p 移到头部。我的 web 应用在桌面浏览器中崩溃了。
    猜你喜欢
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2019-08-28
    相关资源
    最近更新 更多