android - 第二次加载google visualization api

标签 android jquery-mobile cordova google-visualization

我在包含谷歌图表的应用程序中遇到了这个问题。

当用户启动应用程序时,如果网络不可用,我会显示一条警告“网络不可用”并将他送出应用程序。这是正在使用的代码:

// In case there is no network
// the google jsapi is not loaded causing the screen to go white and break the application
// Check if google object is not null
if(typeof(google) !== 'undefined')
{
    google.load('visualization', '1.0', {'packages':['corechart']});
}

function ajaxFailure(jqXHR, textStatus, errorThrown)
{
    hideModal();

    // Check for no network connection
    if(navigator.connection.type == 'none' || jqXHR == -1)
    {
        $('#txtUrl').val('');

        navigator.notification.alert('No Network Connection!\n Please connect to a network and try again.', exitApp, 'Attention', 'OK');
    }
}

function exitApp()
{
    //exit app for android client..
    if(/Android/i.test(navigator.userAgent))
    {
        navigator.app.exitApp();
    }
}

但是如果用户启动应用程序时有网络;谷歌 api 第一次正确加载。现在假设用户仍在配置 url 的登录页面上,突然网络断开连接。此时即使再次连接网络,应用程序 UI 也会卡住。这是由于谷歌可视化 API。我需要在设备再次连接到网络后立即重新加载可视化 API。

我尝试在 onOnline 中调用相同的加载函数Phonegap的事件监听器如下图:

function onOnline()
{
    if(typeof(google) !== 'undefined')
    {
        google.load('visualization', '1.0', {'packages':['corechart']});
    }
}

这让我可以继续登录。但是登录后,当我点击显示图表的按钮时,它只显示一个进度对话框,上面写着“正在加载”。因此,Visualization API 未正确重新加载。

知道我需要做什么吗?

最佳答案

经过大约一个月的搜索和尝试,我发现

这是不可能的。

无论我做什么,网络再次连接后,Google API 都不会重新加载。

所以我唯一的选择是,一旦网络断开连接就从应用程序注销。并让用户在网络可用后重新登录。

不过,如果有人证明我错了,我会很高兴。

关于android - 第二次加载google visualization api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20286473/

相关文章:

android - 如何使用 Dagger 2 将上下文注入(inject) Presenter

javascript - 单击弹出选项时如何获取行的 Id(使用全局变量获取 Id)?

jquery - Android 上的输入类型日期验证

git - Cordova:排除插件和平台

android - Phonegap + SSL + iPhone

android - 将现有设备定义添加到 Android Studio AVD Manager

android - 以编程方式接听 Whatsapp 视频通话

Android 使 Activity 布局看起来与可绘制的初始屏幕相同

javascript - 像 Jquery Mobile 中的搜索栏一样的文本框

javascript - 如何使用 Cordova 在 iOS 上向 Facebook 好友发送邀请?