|
@@ -3,7 +3,6 @@ package com.norman.webviewup.demo;
|
|
|
import android.app.Activity;
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
-import android.content.pm.PackageInfo;
|
|
|
import android.os.Bundle;
|
|
|
import android.text.TextUtils;
|
|
|
import android.util.Log;
|
|
@@ -13,10 +12,13 @@ import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
+import androidx.annotation.Nullable;
|
|
|
import androidx.appcompat.app.AlertDialog;
|
|
|
|
|
|
import com.norman.webviewup.lib.UpgradeCallback;
|
|
|
import com.norman.webviewup.lib.WebViewUpgrade;
|
|
|
+import com.norman.webviewup.lib.source.UpgradeAssetSource;
|
|
|
+import com.norman.webviewup.lib.source.UpgradeSource;
|
|
|
import com.norman.webviewup.lib.source.download.UpgradeDownloadSource;
|
|
|
import com.norman.webviewup.lib.util.ProcessUtils;
|
|
|
|
|
@@ -37,23 +39,33 @@ public class MainActivity extends Activity implements UpgradeCallback {
|
|
|
new UpgradeInfo(
|
|
|
"com.google.android.webview",
|
|
|
"122.0.6261.64",
|
|
|
- "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.google.android.webview_122.0.6261.64_armeabi-v7a.zip"),
|
|
|
+ "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.google.android.webview_122.0.6261.64_armeabi-v7a.zip",
|
|
|
+ "网络"),
|
|
|
new UpgradeInfo(
|
|
|
"com.android.webview",
|
|
|
"113.0.5672.136",
|
|
|
- "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.android.webview_113.0.5672.13_armeabi-v7a.zip"),
|
|
|
+ "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.android.webview_113.0.5672.13_armeabi-v7a.zip",
|
|
|
+ "网络"),
|
|
|
new UpgradeInfo(
|
|
|
"com.huawei.webview",
|
|
|
"14.0.0.331",
|
|
|
- "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.huawei.webview_14.0.0.331_arm64-v8a_armeabi-v7a.zip"),
|
|
|
+ "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.huawei.webview_14.0.0.331_arm64-v8a_armeabi-v7a.zip",
|
|
|
+ "网络"),
|
|
|
new UpgradeInfo(
|
|
|
"com.android.chrome",
|
|
|
"122.0.6261.43",
|
|
|
- "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.android.chrome_122.0.6261.64_armeabi-v7a.zip"),
|
|
|
+ "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.android.chrome_122.0.6261.64_armeabi-v7a.zip",
|
|
|
+ "网络"),
|
|
|
|
|
|
new UpgradeInfo("com.amazon.webview.chromium",
|
|
|
"118-5993-tv.5993.155.51",
|
|
|
- "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.amazon.webview.chromium_118-5993-tv.5993.155.51_armeabi-v7a.zip")
|
|
|
+ "https://mirror.ghproxy.com/https://raw.githubusercontent.com/JonaNorman/ShareFile/main/com.amazon.webview.chromium_118-5993-tv.5993.155.51_armeabi-v7a.zip",
|
|
|
+ "网络"),
|
|
|
+
|
|
|
+ new UpgradeInfo("com.amazon.webview.chromium",
|
|
|
+ "118-5993-tv.5993.155.51",
|
|
|
+ "com.webview.chromium_118-5993-tv.5993.155.51_armeabi-v7a.apk",
|
|
|
+ "内置")
|
|
|
|
|
|
|
|
|
));
|
|
@@ -140,7 +152,7 @@ public class MainActivity extends Activity implements UpgradeCallback {
|
|
|
@Override
|
|
|
public void onUpgradeError(Throwable throwable) {
|
|
|
Toast.makeText(getApplicationContext(), "webView upgrade fail", Toast.LENGTH_SHORT).show();
|
|
|
- Log.v("MainActivity", "message:" + throwable.getMessage() + "\nstackTrace:" + Log.getStackTraceString(throwable));
|
|
|
+ Log.e("MainActivity", "message:" + throwable.getMessage() + "\nstackTrace:" + Log.getStackTraceString(throwable));
|
|
|
updateUpgradeWebViewStatus();
|
|
|
}
|
|
|
|
|
@@ -164,12 +176,11 @@ public class MainActivity extends Activity implements UpgradeCallback {
|
|
|
} else {
|
|
|
UpgradeInfo upgradeInfo = upgradeInfoList.get(which);
|
|
|
selectUpgradeInfo = upgradeInfo;
|
|
|
- UpgradeDownloadSource upgradeDownloadSource = new UpgradeDownloadSource(
|
|
|
- getApplicationContext(),
|
|
|
- upgradeInfo.url,
|
|
|
- new File(getApplicationContext().getFilesDir(), upgradeInfo.packageName + "/" + upgradeInfo.versionName + ".apk")
|
|
|
- );
|
|
|
- WebViewUpgrade.upgrade(upgradeDownloadSource);
|
|
|
+ UpgradeSource upgradeSource = getUpgradeSource(upgradeInfo);
|
|
|
+ if (upgradeSource == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ WebViewUpgrade.upgrade(upgradeSource);
|
|
|
updateUpgradeWebViewPackageInfo();
|
|
|
updateUpgradeWebViewStatus();
|
|
|
}
|
|
@@ -179,6 +190,25 @@ public class MainActivity extends Activity implements UpgradeCallback {
|
|
|
dialog.show();
|
|
|
}
|
|
|
|
|
|
+ @Nullable
|
|
|
+ private UpgradeSource getUpgradeSource(UpgradeInfo upgradeInfo) {
|
|
|
+ UpgradeSource upgradeSource = null;
|
|
|
+ if (upgradeInfo.extraInfo.equals("网络")){
|
|
|
+ upgradeSource = new UpgradeDownloadSource(
|
|
|
+ getApplicationContext(),
|
|
|
+ upgradeInfo.url,
|
|
|
+ new File(getApplicationContext().getFilesDir(), upgradeInfo.packageName + "/" + upgradeInfo.versionName + ".apk")
|
|
|
+ );
|
|
|
+ }else if (upgradeInfo.extraInfo.equals("内置")){
|
|
|
+ upgradeSource = new UpgradeAssetSource(
|
|
|
+ getApplicationContext(),
|
|
|
+ upgradeInfo.url,
|
|
|
+ new File(getApplicationContext().getFilesDir(), upgradeInfo.packageName + "/" + upgradeInfo.versionName + ".apk")
|
|
|
+ );
|
|
|
+ }
|
|
|
+ return upgradeSource;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void updateSystemWebViewPackageInfo() {
|
|
|
String systemWebViewPackageName = WebViewUpgrade.getSystemWebViewPackageName();
|
|
@@ -232,18 +262,28 @@ public class MainActivity extends Activity implements UpgradeCallback {
|
|
|
|
|
|
static class UpgradeInfo {
|
|
|
|
|
|
- public UpgradeInfo(String packageName, String versionName, String url) {
|
|
|
+ public UpgradeInfo(String packageName, String versionName, String url, String extraInfo) {
|
|
|
this.title = packageName + "\n" + versionName;
|
|
|
+ this.extraInfo = !TextUtils.isEmpty(extraInfo)?extraInfo:"";
|
|
|
+ if (!extraInfo.isEmpty()) {
|
|
|
+ this.title = this.title + "\n" + extraInfo;
|
|
|
+ }
|
|
|
this.url = url;
|
|
|
this.packageName = packageName;
|
|
|
this.versionName = versionName;
|
|
|
}
|
|
|
|
|
|
+ public UpgradeInfo(String packageName, String versionName, String url) {
|
|
|
+
|
|
|
+ this(packageName, versionName, url, "");
|
|
|
+ }
|
|
|
+
|
|
|
String title;
|
|
|
String url;
|
|
|
String packageName;
|
|
|
|
|
|
String versionName;
|
|
|
+ String extraInfo;
|
|
|
}
|
|
|
|
|
|
|