1

JSコードをにロードしWebViewます。このJSコードは、file:スキーム uri を使用していくつかのファイルを要求します。これらのファイルは暗号化されて保存されており、 JSモジュールが要求するときに Java コード内でそれらを復号化したいと考えています。http:これらのリクエストがスキームを介して行われる場合、ローカルの http サーバーをセットアップし、それを介して復号化されたコンテンツをJSモジュールに渡すことができることを知っています。スキームuriを使用して、復号化されたコンテンツをJSモジュールに渡す方法はありますか?file:

4

1 に答える 1

2

WebViewClientのオーバーライドを使用してサブクラスを作成し、shouldInterceptRequest(WebView view, WebResourceRequest request)それを にアタッチしますWebView

webview.setWebViewClient(new WebViewClient() {
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {

        if ("file".equals(request.getUrl.getScheme())) { // plus your other conditions, of course

            String mimeType = ... // your mime type
            String encoding = ... // your character encoding
            ...

            InputStream data = ... // open stream to your decrypted file data
            return new WebResourceResponse(mimeType, encoding, data);

        } else {
            return null;  // tell WebView to handle it
        }
    }
});
于 2016-02-29T18:14:08.717 に答える