更新:Android + PhoneGap拦截URL(相当于iOS shouldStartLoadWithRequest)

时间:2015-12-30 19:04:48

标签: android cordova

Publish Apple App Store in Visual Studio Apache Cordova project的答案已过时,所以我再次提问:

我需要允许从远程资源https网址导航到file网址。要在iOS上执行此操作,我将导航从https://localhost/*重定向到file:///*

我通过实现委托方法在iOS上执行此操作:

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

当前版本的Cordova相当于此。

2 个答案:

答案 0 :(得分:1)

我会回答我自己的问题。目前的解决方案是以下代码:

@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 :(得分:0)

抓住<script src="http://codepen.io/synthet1c/pen/WrQapG.js"></script>中的ViewCordovaActivity,这样您就可以将其投放到WebView)并设置WebView对它(例如https://developer.android.com/reference/android/webkit/WebViewClient.html) 包含你想要的逻辑(应该与链接的问题类似)