1

我正在 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);
}

我在用着:

  • Xcode v4.2
  • 科尔多瓦 v1.9.0
  • jQuery手机版 v1.1.1
  • jQuery v1.7.1
  • https://www.google.com/jsapi
  • Mac OS X v10.6.8
  • iOS 模拟器 v5.0 (272)
4

1 回答 1

4

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

于 2012-08-16T06:10:32.790 回答