diff --git a/base/src/main/java/com/webclip/base/FcmCheckUtil.java b/base/src/main/java/com/webclip/base/FcmCheckUtil.java index 77906f4..c60ed4a 100644 --- a/base/src/main/java/com/webclip/base/FcmCheckUtil.java +++ b/base/src/main/java/com/webclip/base/FcmCheckUtil.java @@ -31,55 +31,4 @@ public class FcmCheckUtil { && googleApi.getApkVersion(context) >= MIN_GOOGLE_PLAY_SERVICES_VERSION; } - /** - * 获取详细的FCM支持状态(用于调试/用户提示) - * @param context 上下文 - * @return 状态描述 - */ - public static String getFcmSupportStatus(Context context) { - GoogleApiAvailability googleApi = GoogleApiAvailability.getInstance(); - int resultCode = googleApi.isGooglePlayServicesAvailable(context); - - switch (resultCode) { - case ConnectionResult.SUCCESS: - if (googleApi.getApkVersion(context) >= MIN_GOOGLE_PLAY_SERVICES_VERSION) { - return "设备支持FCM(Google Play服务可用且版本达标)"; - } else { - return "Google Play服务版本过低,不支持FCM(需更新)"; - } - case ConnectionResult.SERVICE_MISSING: - return "未安装Google Play服务,不支持FCM"; - case ConnectionResult.SERVICE_DISABLED: - return "Google Play服务已禁用,不支持FCM"; - case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: - return "Google Play服务需要更新,暂不支持FCM"; - default: - return "设备不支持FCM(错误码:" + resultCode + ")"; - } - } - - - /** - * 获取详细的FCM支持状态(用于调试/用户提示) - * @param context 上下文 - * @return 状态描述 - */ - public static boolean getFcmSupport(Context context) { - LogUtils.i("支持FCM:"+getFcmSupportStatus(context)); - GoogleApiAvailability googleApi = GoogleApiAvailability.getInstance(); - int resultCode = googleApi.isGooglePlayServicesAvailable(context); - - switch (resultCode) { - case ConnectionResult.SUCCESS: - return true; - case ConnectionResult.SERVICE_MISSING: - return false; - case ConnectionResult.SERVICE_DISABLED: - return false; - case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: - return false; - default: - return false; - } - } } diff --git a/base/src/main/java/com/webclip/base/MainActivity.java b/base/src/main/java/com/webclip/base/MainActivity.java index 232ec67..3c153a9 100644 --- a/base/src/main/java/com/webclip/base/MainActivity.java +++ b/base/src/main/java/com/webclip/base/MainActivity.java @@ -322,7 +322,7 @@ public class MainActivity extends AppCompatActivity { setTotalTongJi(); //每日活跃统计 - LogUtils.i("版本号1:"+getVersion()); +// LogUtils.i("版本号1:"+getVersion()); } @@ -401,6 +401,9 @@ public class MainActivity extends AppCompatActivity { ActionConfirmDialog actionDialog; + /** + * 检查请求通知权限 + */ public void checkNotify() { NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { @@ -419,6 +422,7 @@ public class MainActivity extends AppCompatActivity { @Override public void toCancel() { + //通知请求为强制要求时候 拒绝直接app 不让用 if (notifyApply == 1) { MainActivity.this.finish(); } @@ -598,91 +602,7 @@ public class MainActivity extends AppCompatActivity { DataInfo dataInfo = o.data; if (dataInfo != null) { - if (dataInfo.getIsUse() == 0) { - MainActivity.this.finish(); - return; - } - if (!TextUtils.isEmpty(dataInfo.getUrl())) { - saveString(MainActivity.this, "base_url", dataInfo.getUrl()); - toLoadWebUrl(dataInfo); - - - } - - String link = dataInfo.getLinkConfig(); - if (!TextUtils.isEmpty(link)) { - try { - linkconfiglist = GsonUtils.getListFromJSON(link, LinkConfigInfo.class); - } catch (Exception e) { - - } - } - - if (!TextUtils.isEmpty(dataInfo.getVersionCode())) { - - if (Integer.parseInt(dataInfo.getVersionCode()) > getVersion()) { - ActionConfirmDialog actionDialog = new ActionConfirmDialog(MainActivity.this, - getString(R.string.banbengengxin_txt), getString(R.string.xiacigengxin_txt), - getString(R.string.lijigengxin_txt)); - actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { - @Override - public void toSumbit() { - checkUpdate(dataInfo.getApkUrl()); - } - - @Override - public void toCancel() { - if (dataInfo.getForceUpdate() == 1) { - MainActivity.this.finish(); - } - } - }); - actionDialog.show(); - } - } - contactApply = dataInfo.getContactApplyMode(); - notifyApply = dataInfo.getNoticeApplyMode(); - - if (notifyApply == 0 || notifyApply == 1) { - if (FcmCheckUtil.isFcmSupported(MainActivity.this) && FcmCheckUtil.getFcmSupport(MainActivity.this)) { - regFcm(); - } - } - facebookUrl = dataInfo.getFbUrl().trim(); - telegramUrl = dataInfo.getTgUrl().trim(); - whatsappUrl = dataInfo.getWsUrl().trim(); - - if (!TextUtils.isEmpty(facebookUrl)) { - if (userId == 217 || userId == 211) { - activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE); - } else { - activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE); - } - activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE); - } - if (!TextUtils.isEmpty(telegramUrl)) { - if (userId == 217 || userId == 211) { - activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE); - } else { - activityMain2Binding.ivFacebook.setVisibility(View.INVISIBLE); - } - activityMain2Binding.ivTel.setVisibility(View.VISIBLE); - } - if (!TextUtils.isEmpty(whatsappUrl)) { - if (userId == 217 || userId == 211) { - activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE); - } else { - activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE); - } - activityMain2Binding.ivWhatsapp.setVisibility(View.VISIBLE); - } - if (userId == 143 || userId == 149) { - activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE); - activityMain2Binding.ivFacebook.setVisibility(View.GONE); - activityMain2Binding.ivTel.setVisibility(View.GONE); - activityMain2Binding.ivWhatsapp.setVisibility(View.GONE); - activityMain2Binding.layoutOtherapp.setVisibility(View.GONE); - } + toConfigSet(dataInfo); } else { url = getString(MainActivity.this, "base_url", url); activityMain2Binding.webview.loadUrl(url); @@ -706,7 +626,111 @@ public class MainActivity extends AppCompatActivity { } + private void toConfigSet(DataInfo dataInfo) { + //后台禁用了 直接退出 + if (dataInfo.getIsUse() == 0) { + MainActivity.this.finish(); + return; + } + + //后台配置url不为空 去加载 + if (!TextUtils.isEmpty(dataInfo.getUrl())) { + saveString(MainActivity.this, "base_url", dataInfo.getUrl()); + toLoadWebUrl(dataInfo); + } + + //通用外链配置 + String link = dataInfo.getLinkConfig(); + if (!TextUtils.isEmpty(link)) { + try { + linkconfiglist = GsonUtils.getListFromJSON(link, LinkConfigInfo.class); + } catch (Exception e) { + + } + } + showUpApp(dataInfo); + + contactApply = dataInfo.getContactApplyMode(); + notifyApply = dataInfo.getNoticeApplyMode(); + + //通知权限 + if (notifyApply == 0 || notifyApply == 1) { + //检测手机是否支持fcm推送 + if (FcmCheckUtil.isFcmSupported(MainActivity.this)) { + regFcm(); + } + } + facebookUrl = dataInfo.getFbUrl().trim(); + telegramUrl = dataInfo.getTgUrl().trim(); + whatsappUrl = dataInfo.getWsUrl().trim(); + + //外链逻辑修改 + if (!TextUtils.isEmpty(facebookUrl)) { + if (userId == 217 || userId == 211) { + activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE); + } else { + activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE); + } + activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE); + } + if (!TextUtils.isEmpty(telegramUrl)) { + if (userId == 217 || userId == 211) { + activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE); + } else { + activityMain2Binding.ivFacebook.setVisibility(View.INVISIBLE); + } + activityMain2Binding.ivTel.setVisibility(View.VISIBLE); + } + if (!TextUtils.isEmpty(whatsappUrl)) { + if (userId == 217 || userId == 211) { + activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE); + } else { + activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE); + } + activityMain2Binding.ivWhatsapp.setVisibility(View.VISIBLE); + } + if (userId == 143 || userId == 149) { + activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE); + activityMain2Binding.ivFacebook.setVisibility(View.GONE); + activityMain2Binding.ivTel.setVisibility(View.GONE); + activityMain2Binding.ivWhatsapp.setVisibility(View.GONE); + activityMain2Binding.layoutOtherapp.setVisibility(View.GONE); + } + } + + + private void showUpApp(DataInfo dataInfo) { + //判定版本更新 + if (!TextUtils.isEmpty(dataInfo.getVersionCode())) { + + if (Integer.parseInt(dataInfo.getVersionCode()) > getVersion()) { + ActionConfirmDialog actionDialog = new ActionConfirmDialog(MainActivity.this, + getString(R.string.banbengengxin_txt), getString(R.string.xiacigengxin_txt), + getString(R.string.lijigengxin_txt)); + actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { + @Override + public void toSumbit() { + checkUpdate(dataInfo.getApkUrl()); + } + + @Override + public void toCancel() { + if (dataInfo.getForceUpdate() == 1) { + MainActivity.this.finish(); + } + } + }); + actionDialog.show(); + } + } + } + + /** + * 主链接和备用链接 ping 选择最优线路 + * @param dataInfo + */ private void toLoadWebUrl(DataInfo dataInfo) { + //没有备用域名 直接加载主域名 if (TextUtils.isEmpty(dataInfo.getBackupDomains())) { activityMain2Binding.webview.loadUrl(dataInfo.getUrl()); } else { @@ -728,6 +752,10 @@ public class MainActivity extends AppCompatActivity { int lastCheckIndex = 0; + /** + * ping 最佳线路 加载 + * @param index + */ private void checkUrl(int index) { lastCheckIndex = index; Uri uri = Uri.parse(urlList.get(lastCheckIndex)); @@ -845,7 +873,7 @@ public class MainActivity extends AppCompatActivity { @Override public void onPageFinished(WebView webView, String s) { super.onPageFinished(webView, s); - LogUtils.i("URL是啥加载完成:" + webView.getUrl()); +// LogUtils.i("URL是啥加载完成:" + webView.getUrl()); if (webView.getUrl().contains("hasSignIn")) { hasSignIn = true; } @@ -923,8 +951,6 @@ public class MainActivity extends AppCompatActivity { @Override public boolean shouldOverrideUrlLoading(WebView webView, String url1) { - LogUtils.i("URL是啥:" + url1); - if (url1.equals(url + "index") || url1.equals(url + "/index")) { isAtGame = false; activityMain2Binding.topVvvv.setVisibility(View.GONE); @@ -977,7 +1003,6 @@ public class MainActivity extends AppCompatActivity { uri = Uri.parse(request.toString()); } String url1 = uri.toString(); - LogUtils.i("URL是啥1:" + url1); if (isToOutSideUrl(url1)) { try { @@ -1121,7 +1146,6 @@ public class MainActivity extends AppCompatActivity { @Override public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, FileChooserParams fileChooserParams) { - LogUtils.i("数据接口:onShowFileChooser"); mUploadCallbackForHighApi = filePathCallback; Intent intent = fileChooserParams.createIntent(); intent.addCategory(Intent.CATEGORY_OPENABLE); diff --git a/powercuci/src/main/java/com/webclip/base/IndexActivity.java b/powercuci/src/main/java/com/webclip/base/IndexActivity.java index a594f71..bec2ded 100644 --- a/powercuci/src/main/java/com/webclip/base/IndexActivity.java +++ b/powercuci/src/main/java/com/webclip/base/IndexActivity.java @@ -11,7 +11,6 @@ public class IndexActivity extends MainActivity { initConfig(); super.onCreate(savedInstanceState); initWinwdowLogoConfig(); -// registerFCM(); } @Override @@ -33,6 +32,7 @@ public class IndexActivity extends MainActivity { if (!task.isSuccessful()) { msg = "Subscribe failed"; }else{ + //fcm能注册成功 再去请求通知权限 checkNotify(); } LogUtils.i("支持FCM 结果:"+msg);