0

HTML、js、および画像、ビデオなどの静的コンテンツのコレクションであるWebコンテンツがあります。

他のシステムの Web サーバーで Web コンテンツをホストする場合。Android ストック ブラウザ (HTC One 4.4.2 を使用) からはレンダリングできますが、Chrome ブラウザからはレンダリングできません。

コンテンツをローカルで取得し、アプリケーションに埋め込まれた Web サーバー (NanoHTTPD) から提供するとします。(これは私の実際の使用例です) Web コンテンツのビデオがレンダリングされません。Web ビューで loadURL と同じコンテンツを読み込もうとすると、同じ問題が発生します。したがって、アプリケーションでNanoHTTPサーバーを使用してコンテンツを提供する方法の問題ではないようです。問題は、Web ビューの構成またはレンダリングにあるようです。それ以外の場合は、システム サーバーから提供されていたはずです。

私の Web ビューでは、すべての設定を有効にしました。以下は、Web ビューを構成するためのコードです。

webView = (WebView) findViewById(R.id.webView);
        progressBar = (ProgressBar) findViewById(R.id.progressBarForWebView);

        WebSettings webViewSettings = webView.getSettings();
        webViewSettings.setJavaScriptEnabled(true);
        webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webViewSettings.setPluginState(PluginState.ON);
        webViewSettings
                .setUserAgentString("Mozilla/5.0 (Linux; U; Android 4.4.2; en-in; HTC_One_dual_sim Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30");
        String userAgentString = webViewSettings.getUserAgentString();
        webView.getSettings().setAllowFileAccess(true);
        webView.setSoundEffectsEnabled(true);
        webView.setWebViewClient(new MyWebViewClient());

ユーザー エージェントをストック ブラウザから受け取った文字列に設定することもできます。https://developer.chrome.com/multidevice/webview/overviewから、4.4 から Chrome と WebView のレンダリング エンジンが同じであることを読みました。

私のコンテンツは Android Chrome ではなく Android Stock ブラウザーで実行されるため、ユーザー エージェントを変更しても Web ビューはコンテンツをレンダリングしませんか? コンテンツをレンダリングする他の方法はありますか?

乾杯、サウラフ

4

0 に答える 0