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.
2 Antworten
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);
}
});
}
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)
Neue Fragen
android
Android ist Googles mobiles Betriebssystem, mit dem digitale Geräte (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) programmiert oder entwickelt werden. Verwenden Sie für Themen im Zusammenhang mit Android Android-spezifische Tags wie Android-Intent, Android-Aktivität, Android-Adapter usw. Verwenden Sie für andere Fragen als Entwicklung oder Programmierung, die sich jedoch auf das Android-Framework beziehen, diesen Link: https: // android.stackexchange.com.