feat: improve web view detection on older android versions

- Generated-By: GPT-5.3-Codex, Visual Studio Code Copilot
This commit is contained in:
Manuel Beck
2026-03-12 12:38:22 +01:00
parent 2981046b5b
commit bc2d92e3d8
@@ -664,24 +664,34 @@ public class CordovaActivity extends AppCompatActivity {
private String getWebViewVersion() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
try {
String webViewPackageName = WebViewCompat.getCurrentWebViewPackage(this).packageName;
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageInfo(webViewPackageName, 0);
return pi.versionName;
PackageInfo webViewPackage = WebViewCompat.getCurrentWebViewPackage(this);
if (webViewPackage != null) {
return webViewPackage.versionName;
}
} catch (Exception e) {
LOG.d(TAG, "Could not get WebView version using WebViewCompat: " + e.getMessage());
}
}
// Fallback for older API levels
try {
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageInfo("com.google.android.webview", 0);
return pi.versionName;
} catch (PackageManager.NameNotFoundException e) {
LOG.d(TAG, "Could not find WebView package");
PackageManager pm = getPackageManager();
String[] fallbackPackages = new String[] {
"com.google.android.webview",
"com.android.webview",
"com.android.chrome"
};
for (String packageName : fallbackPackages) {
try {
PackageInfo pi = pm.getPackageInfo(packageName, 0);
return pi.versionName;
} catch (PackageManager.NameNotFoundException ignored) {
// Try next package
}
}
LOG.d(TAG, "Could not find WebView package");
return null;
}