Китайские Android устройства. Какой браузер используется в WebView? - PullRequest
0 голосов
/ 25 января 2019

Китай не разрешает устанавливать Google Chrome Browser по умолчанию на китайских устройствах Android, и мы не можем попросить его использовать для тестирования. Мы отметили, что наше гибридное приложение имеет проблемы с китайскими устройствами

На китайских устройствах с Android 5+.

1.- Компонент WebView отличается от стандартного?

2.- Какой движок рендеринга и движок JavaScript используется в WebView? WebKit и V8?

3.- Какой китайский браузер ведет себя наиболее похоже на WebView / Chrome?

Спасибо.

1 Ответ

0 голосов
/ 25 января 2019

Я работаю с китайскими устройствами Android уже много лет.Многие из моих клиентов имеют планшетные устройства ONDA и CUBE, работающие иногда до 4.2.2 и в основном 5.0+.Это сложный вопрос, потому что есть много вариантов, и, конечно, у них нет сервисов Google Play.Компонент WebView на большинстве этих устройств работает довольно хорошо.Механизм рендеринга выглядит как WebGL.Вот несколько снимков экрана, на которых показаны сведения о браузере используемых мной планшетов ONDA 7 ". enter image description here Вот код, который я только что протестировал на одном из моих планшетов ONDA 7", и он отлично работает

webView = (WebView) findViewById(R.id.wb_webview);

//Scroll bars should not be hidden
webView.setScrollbarFadingEnabled(false);
webView.setHorizontalScrollBarEnabled(true);
webView.setVerticalScrollBarEnabled(true);
webView.setFitsSystemWindows(true);

//Enable JavaScript
webView.getSettings().setJavaScriptEnabled(true);

//Set the user agent
webView.getSettings().setUserAgentString("AndroidWebView");

//Clear the cache
webView.clearCache(true);
webView.setBackgroundColor(Color.parseColor("#FFFFFF"));
webView.setFadingEdgeLength(10);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);

final Activity activity = this;
final ProgressDialog progressDialog = new ProgressDialog(activity);
//progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setProgressStyle(ProgressDialog.THEME_HOLO_LIGHT);
progressDialog.setCancelable(true);

webView.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress) {
        progressDialog.setCanceledOnTouchOutside(true);
        progressDialog.setTitle("Loading visualization ...");
        progressDialog.setButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                webView.destroy();
                finish();
            } });
        progressDialog.show();
        progressDialog.setProgress(0);
        activity.setProgress(progress * 1000);
        progressDialog.incrementProgressBy(progress);
        if(progress == 100 && progressDialog.isShowing())
            progressDialog.dismiss();
    }
});

// Load the URL of the HTML file containing the JavaScript D3 code
webView.loadUrl("https://www.google.com");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...