Получить номер версии WebView для леденца?
У меня есть Lollipop и вижу, что у нас есть отдельное приложение для "веб-просмотра системы Android". Есть ли способ получить номер своей версии из моего собственного приложения, которое использует экземпляр WebView?
Я бы хотел сообщить некоторые статистические данные о том, какую версию используют мои пользователи.
Спасибо
Ответы
Ответ 1
Как проверить строку user-agent?
Log.i("WebViewActivity", "UA: " + mWebView.getSettings().getUserAgentString());
Для меня это выдает:
Строка User-agent: Mozilla/5.0 (Linux, Android 5.0; Nexus 4 Build/LRX21T) AppleWebKit/537.36 (KHTML, как и Gecko) Версия /4.0 Chrome/37.0.0.0 Mobile Safari/537.36
Дополнительная информация: WebView на Android
В случае, если вы переопределите строку UA своим:
String getWebviewVersionInfo() {
// Overridden UA string
String alreadySetUA = mWebView.getSettings().getUserAgentString();
// Next call to getUserAgentString() will get us the default
mWebView.getSettings().setUserAgentString(null);
// Devise a method for parsing the UA string
String webViewVersion =
parseUAForVersion(mWebView.getSettings().getUserAgentString());
// Revert to overriden UA string
mWebView.getSettings().setUserAgentString(alreadySetUA);
return webViewVersion;
}
Ответ 2
UPDATE:
По-видимому, это не всегда точно даст фактический клиент WebView
, который будет использоваться на целевом устройстве. Начиная с Android 7.0 пользователи могут выбрать предпочтительный клиент (h/t @Greg Dan).
Сначала мы получаем имя пакета из Google Play Store:
https://play.google.com/store/apps/details?id= com.google.android.webview
Тогда это
PackageManager pm = getPackageManager();
try {
PackageInfo pi = pm.getPackageInfo("com.google.android.webview", 0);
Log.d(TAG, "version name: " + pi.versionName);
Log.d(TAG, "version code: " + pi.versionCode);
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Android System WebView is not found");
}
дает
D/WebViewDetails﹕ version name: 39 (1743759-arm)
D/WebViewDetails﹕ version code: 320201
Надеюсь, что это поможет.