Die Antworten der Originalfrage lauten < stark> veraltet also frage ich es noch einmal:

Ich muss die Navigation von einer https URL einer Remote-Ressource zu einer file URL zulassen. Um dies unter iOS zu tun, leite ich die Navigation von https://localhost/* nach file:///* um

Ich mache dies unter iOS, indem ich die Delegate-Methode implementiere:

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

Was ist das Äquivalent dazu in der aktuellen Version von Cordova.

0
sylvanaar 30 Dez. 2015 im 22:04

2 Antworten

Beste Antwort

Ich werde meine eigene Frage beantworten. Die aktuelle Lösung ist der folgende Code:

@Override
protected void init() {
    super.init();

    final SystemWebView webView = (SystemWebView) appView.getEngine().getView();

    webView.setWebViewClient(new SystemWebViewClient((SystemWebViewEngine) this.appView.getEngine()) {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.startsWith("https://localhost")) {
                view.loadUrl(url.replace("https://localhost", "file:///"));
                return true;
            }
            return super.shouldOverrideUrlLoading(view, url);
        }
    });

}
1
sylvanaar 22 Feb. 2016 im 21:42

Besorgen Sie sich das View im CordovaActivity (das ist ein WebView, damit Sie es in ein WebView umwandeln können) und setzen Sie ein WebViewClient darauf ( zB https://developer.android.com/reference/android/webkit/WebViewClient. html) enthält die Logik, die Sie haben möchten (sollte der verknüpften Frage ähnlich sein)

0
sschrass 30 Dez. 2015 im 19:39