public void loadUrlIntoView()

in framework/src/org/apache/cordova/CordovaWebViewImpl.java [128:205]


    public void loadUrlIntoView(final String url, boolean recreatePlugins) {
        LOG.d(TAG, ">>> loadUrl(" + url + ")");
        if (url.equals("about:blank") || url.startsWith("javascript:")) {
            engine.loadUrl(url, false);
            return;
        }

        recreatePlugins = recreatePlugins || (loadedUrl == null);

        if (recreatePlugins) {
            // Don't re-initialize on first load.
            if (loadedUrl != null) {
                appPlugin = null;
                pluginManager.init();
            }
            loadedUrl = url;
        }

        // Create a timeout timer for loadUrl
        final int currentLoadUrlTimeout = loadUrlTimeout;
        final int loadUrlTimeoutValue = preferences.getInteger("LoadUrlTimeoutValue", 20000);

        // Timeout error method
        final Runnable loadError = new Runnable() {
            @Override
            public void run() {
                stopLoading();
                LOG.e(TAG, "CordovaWebView: TIMEOUT ERROR!");

                // Handle other errors by passing them to the WebView in JS
                JSONObject data = new JSONObject();
                try {
                    data.put("errorCode", -6);
                    data.put("description", "The connection to the server was unsuccessful.");
                    data.put("url", url);
                } catch (JSONException e) {
                    // Will never happen.
                }
                pluginManager.postMessage("onReceivedError", data);
            }
        };

        // Timeout timer method
        final Runnable timeoutCheck = new Runnable() {
            @Override
            public void run() {
                try {
                    synchronized (this) {
                        wait(loadUrlTimeoutValue);
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                // If timeout, then stop loading and handle error (if activity still exists)
                if (loadUrlTimeout == currentLoadUrlTimeout && cordova.getActivity() != null) {
                    cordova.getActivity().runOnUiThread(loadError);
                } else if (cordova.getActivity() == null) {
                    LOG.d(TAG, "Cordova activity does not exist.");
                }
            }
        };

        if (cordova.getActivity() != null) {
            final boolean _recreatePlugins = recreatePlugins;
            cordova.getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (loadUrlTimeoutValue > 0) {
                        cordova.getThreadPool().execute(timeoutCheck);
                    }
                    engine.loadUrl(url, _recreatePlugins);
                }
            });
        } else {
            LOG.d(TAG, "Cordova activity does not exist.");
        }
    }