WebView加载内容很慢

时间:2012-03-05 20:56:10

标签: android cordova webview alertdialog phonegap-plugins

我正在为Android中的PhoneGap做一个自定义对话框插件。 PhoneGap的Notification插件无法在对话框中以HTML格式设置文本。所以我决定自己使用WebView。但是我注意到当出现Alert.Dialog时,WebView最初是空的,然后在一瞬间加载内容,导致对话框高度“跳转”。即使我对传递给loadData的内容进行硬编码,内容加载仍然很慢。

我有什么遗漏吗?

@Override
public PluginResult execute(String action, JSONArray args, String callbackId) {
    try {
        JSONObject jo = args.getJSONObject(0);
        showCustomDialog(jo.getString("title"), jo.getString("message"), jo.getString("buttonLabel")); 
        return new PluginResult(PluginResult.Status.OK);
    } catch (JSONException e) {
        return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
    }
}

private void showCustomDialog(final String dialogTitle, final String dialogMessage, final String dialogButtonLabel) {           

    Runnable runnable = new Runnable() {

        public void run() {                         
            WebView webView = new WebView(ctx);
            webView.loadData(dialogMessage, "text/html", "UTF-8");
        webView.setBackgroundColor(Color.TRANSPARENT);

        AlertDialog.Builder alert = new AlertDialog.Builder(ctx);           
        alert.setView(view)
            .setCancelable(false)
            .setIcon(R.drawable.icon)
            .setTitle(dialogTitle)
            .setPositiveButton(dialogButtonLabel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.dismiss();
                        }
                    }
            )
            .show();
        }
    };
    this.ctx.runOnUiThread(runnable);
}

0 个答案:

没有答案