diff --git a/app/build.gradle b/app/build.gradle
index 92c9a7e..0e2098f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -118,7 +118,9 @@ dependencies {
implementation 'com.tencent.bugly:crashreport:3.2.1'
implementation 'com.github.xuexiangjys.SmartRefreshLayout:refresh-header:1.1.5'
implementation 'com.github.xuexiangjys.SmartRefreshLayout:refresh-layout:1.1.5'
- implementation 'com.just.agentweb:agentweb:4.1.4'
+ //implementation 'com.just.agentweb:agentweb:4.1.4'
+ //第三方浏览器
+ implementation 'io.github.justson:agentweb-core:v5.1.1-androidx'
implementation 'com.lcodecorex:tkrefreshlayout:1.0.7'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
implementation files('../libs/poi-3.9-20121203.jar')
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7bfebf6..8898812 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1025,6 +1025,10 @@
android:name=".ui.activity.BaseWebActivity"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustResize|stateHidden" />
+
+ * source code https://github.com/Justson/AgentWeb
+ */
+
+public abstract class BaseAgentWebActivity extends AppCompatActivity {
+
+ protected AgentWeb mAgentWeb;
+ private AgentWebUIControllerImplBase mAgentWebUIController;
+ private ErrorLayoutEntity mErrorLayoutEntity;
+ private MiddlewareWebChromeBase mMiddleWareWebChrome;
+ private MiddlewareWebClientBase mMiddleWareWebClient;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ }
+
+ @Override
+ public void setContentView(@LayoutRes int layoutResID) {
+ super.setContentView(layoutResID);
+ buildAgentWeb();
+ }
+
+ @Override
+ public void setContentView(View view) {
+ super.setContentView(view);
+ buildAgentWeb();
+ }
+
+ protected void buildAgentWeb() {
+ ErrorLayoutEntity mErrorLayoutEntity = getErrorLayoutEntity();
+ mAgentWeb = AgentWeb.with(this)
+ .setAgentWebParent(getAgentWebParent(), new ViewGroup.LayoutParams(-1, -1))
+ .useDefaultIndicator(getIndicatorColor(), getIndicatorHeight())
+ .setWebChromeClient(getWebChromeClient())
+ .setWebViewClient(getWebViewClient())
+ .setWebView(getWebView())
+ .setPermissionInterceptor(getPermissionInterceptor())
+ .setWebLayout(getWebLayout())
+ .setAgentWebUIController(getAgentWebUIController())
+ .interceptUnkownUrl()
+ .setOpenOtherPageWays(getOpenOtherAppWay())
+ .useMiddlewareWebChrome(getMiddleWareWebChrome())
+ .useMiddlewareWebClient(getMiddleWareWebClient())
+ .setAgentWebWebSettings(getAgentWebSettings())
+ .setMainFrameErrorView(mErrorLayoutEntity.layoutRes, mErrorLayoutEntity.reloadId)
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .createAgentWeb()
+ .ready()
+ .go(getUrl());
+
+
+ }
+
+
+ protected @NonNull
+ ErrorLayoutEntity getErrorLayoutEntity() {
+ if (this.mErrorLayoutEntity == null) {
+ this.mErrorLayoutEntity = new ErrorLayoutEntity();
+ }
+ return mErrorLayoutEntity;
+ }
+
+ protected AgentWeb getAgentWeb() {
+ return this.mAgentWeb;
+ }
+
+
+ protected static class ErrorLayoutEntity {
+ private int layoutRes = com.just.agentweb.R.layout.agentweb_error_page;
+ private int reloadId;
+
+ public void setLayoutRes(int layoutRes) {
+ this.layoutRes = layoutRes;
+ if (layoutRes <= 0) {
+ layoutRes = -1;
+ }
+ }
+
+ public void setReloadId(int reloadId) {
+ this.reloadId = reloadId;
+ if (reloadId <= 0) {
+ reloadId = -1;
+ }
+ }
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+
+ if (mAgentWeb != null && mAgentWeb.handleKeyEvent(keyCode, event)) {
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+ @Override
+ protected void onPause() {
+ if (mAgentWeb != null) {
+ mAgentWeb.getWebLifeCycle().onPause();
+ }
+ super.onPause();
+
+ }
+
+ @Override
+ protected void onResume() {
+ if (mAgentWeb != null) {
+ mAgentWeb.getWebLifeCycle().onResume();
+ }
+ super.onResume();
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
+
+ @Override
+ protected void onDestroy() {
+ if (mAgentWeb != null) {
+ mAgentWeb.getWebLifeCycle().onDestroy();
+ }
+ super.onDestroy();
+ }
+
+
+ protected
+ @Nullable
+ String getUrl() {
+ return null;
+ }
+
+ public @Nullable
+ IAgentWebSettings getAgentWebSettings() {
+ return AgentWebSettingsImpl.getInstance();
+ }
+
+ protected abstract @NonNull
+ ViewGroup getAgentWebParent();
+
+ protected @Nullable
+ WebChromeClient getWebChromeClient() {
+ return null;
+ }
+
+ protected @ColorInt
+ int getIndicatorColor() {
+ return -1;
+ }
+
+ protected int getIndicatorHeight() {
+ return -1;
+ }
+
+ protected @Nullable
+ WebViewClient getWebViewClient() {
+ return null;
+ }
+
+
+ protected @Nullable
+ WebView getWebView() {
+ return null;
+ }
+
+ protected @Nullable
+ IWebLayout getWebLayout() {
+ return null;
+ }
+
+ protected @Nullable
+ PermissionInterceptor getPermissionInterceptor() {
+ return null;
+ }
+
+ public @Nullable
+ AgentWebUIControllerImplBase getAgentWebUIController() {
+ return null;
+ }
+
+ public @Nullable
+ DefaultWebClient.OpenOtherPageWays getOpenOtherAppWay() {
+ return null;
+ }
+
+ protected @NonNull
+ MiddlewareWebChromeBase getMiddleWareWebChrome() {
+ return this.mMiddleWareWebChrome = new MiddlewareWebChromeBase() {
+ @Override
+ public void onReceivedTitle(WebView view, String title) {
+ super.onReceivedTitle(view, title);
+ setTitle(view, title);
+ }
+ };
+ }
+
+ protected void setTitle(WebView view, String title) {
+
+ }
+
+ protected @NonNull
+ MiddlewareWebClientBase getMiddleWareWebClient() {
+ return this.mMiddleWareWebClient = new MiddlewareWebClientBase() {
+ };
+ }
+}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AboutMeActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AboutMeActivity.kt
index bb21a74..e4220a7 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AboutMeActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AboutMeActivity.kt
@@ -3,6 +3,7 @@ package com.rehome.zhdcoa.ui.activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
+import android.view.View
import com.rehome.zhdcoa.R
import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding
import com.rehome.zhdcoa.databinding.ActivityAboutMeBinding
@@ -20,24 +21,36 @@ class AboutMeActivity : BaseActivityOaToolbarViewBinding
binding.tvServiceAgreement.setOnClickListener {
val intent = Intent(this, ServiceAgreementActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
}
binding.tvPrivacy.setOnClickListener {
val intent = Intent(this, PrivacyAgreementActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
}
binding.tvPrivateInfo.setOnClickListener {
val intent = Intent(this, CollectPrivateInfoActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
}
binding.tvThirdShareList.setOnClickListener {
val intent = Intent(this, ThirdShareListActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
}
-
+ binding.tvBeiAn.setOnClickListener(View.OnClickListener {
+ val intent = Intent(
+ this,
+ BeiAnWebActivity::class.java
+ )
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
+ intent.putExtra("beiAnNo",binding.tvBeiAn.text.toString());
+ startActivity(intent)
+ })
}
override fun initData() {
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/BeiAnWebActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/BeiAnWebActivity.java
new file mode 100644
index 0000000..dce53fd
--- /dev/null
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/BeiAnWebActivity.java
@@ -0,0 +1,120 @@
+package com.rehome.zhdcoa.ui.activity;
+
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
+import com.just.agentweb.AgentWeb;
+import com.just.agentweb.DefaultWebClient;
+import com.just.agentweb.WebChromeClient;
+import com.just.agentweb.WebViewClient;
+import com.rehome.zhdcoa.R;
+import com.rehome.zhdcoa.weiget.WebLayout;
+
+public class BeiAnWebActivity extends AppCompatActivity {
+ protected AgentWeb mAgentWeb;
+ private LinearLayout mLinearLayout;
+ private Toolbar mToolbar;
+ private TextView mTitleTextView;
+ private AlertDialog mAlertDialog;
+ private Intent intent;
+ private String beiAnNo;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_bei_an_web);
+ mLinearLayout = this.findViewById(R.id.container);
+ mToolbar = this.findViewById(R.id.toolbar);
+ mToolbar.setTitleTextColor(Color.WHITE);
+ mToolbar.setTitle("");
+ mTitleTextView = this.findViewById(R.id.toolbar_title);
+ this.setSupportActionBar(mToolbar);
+ if (getSupportActionBar() != null) {
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ }
+ mToolbar.setNavigationOnClickListener(v -> BeiAnWebActivity.this.finish());
+ intent = getIntent();
+ beiAnNo = intent.getStringExtra("beiAnNo");
+
+ mAgentWeb = AgentWeb.with(this)
+ .setAgentWebParent(mLinearLayout, new LinearLayout.LayoutParams(-1, -1))
+ .useDefaultIndicator()
+ .setWebChromeClient(mWebChromeClient)
+ .setWebViewClient(mWebViewClient)
+ .setMainFrameErrorView(com.just.agentweb.R.layout.agentweb_error_page, -1)
+ .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
+ .setWebLayout(new WebLayout(this))
+ .setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)//打开其他应用时,弹窗咨询用户是否前往其他应用
+ .interceptUnkownUrl() //拦截找不到相关页面的Scheme
+ .createAgentWeb()
+ .ready()
+ .go(getUrl());
+ }
+
+ private final com.just.agentweb.WebViewClient mWebViewClient = new WebViewClient() {
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
+ return super.shouldOverrideUrlLoading(view, request);
+ }
+
+ @Override
+ public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ }
+ };
+ private final com.just.agentweb.WebChromeClient mWebChromeClient = new WebChromeClient() {
+ @Override
+ public void onReceivedTitle(WebView view, String title) {
+ super.onReceivedTitle(view, title);
+ if (mTitleTextView != null) {
+ mTitleTextView.setText("ICP备案");
+ }
+ }
+ };
+
+ public String getUrl() {
+ return "https://beian.miit.gov.cn";
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (mAgentWeb.handleKeyEvent(keyCode, event)) {
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+ @Override
+ protected void onPause() {
+ mAgentWeb.getWebLifeCycle().onPause();
+ super.onPause();
+ }
+
+ @Override
+ protected void onResume() {
+ mAgentWeb.getWebLifeCycle().onResume();
+ super.onResume();
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ mAgentWeb.getWebLifeCycle().onDestroy();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt
index 71ba63f..9348166 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt
@@ -1,10 +1,6 @@
package com.rehome.zhdcoa.ui.activity
-//import com.yanzhenjie.permission.AndPermission
-//import com.yanzhenjie.permission.runtime.Permission
-
-
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.annotation.SuppressLint
@@ -19,8 +15,6 @@ import android.provider.Settings
import android.text.TextUtils
import android.util.Log
import android.view.View
-import android.view.animation.AccelerateDecelerateInterpolator
-import android.widget.CheckBox
import android.widget.CompoundButton
import android.widget.RadioGroup
import android.widget.Toast
@@ -39,8 +33,6 @@ import com.xiaomi.mipush.sdk.MiPushClient
import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Response
-import java.io.File
-import java.util.Objects
class LoginActivity : BaseActivityOaToolbarViewBinding() {
@@ -188,8 +180,8 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() {
if (BuildConfig.LOG_ERROR) {
// 管理员
-// binding.etUsername.setText("ZHPS_Admin")
-// binding.etPassword.setText("Rehome.zhps@996")
+ binding.etUsername.setText("ZHPS_Admin")
+ binding.etPassword.setText("Rehome.zhps@996")
// binding.etUsername.setText("310386")
// binding.etPassword.setText("Zhps$cc0386")
@@ -200,6 +192,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() {
//陈坚标
// binding.etUsername.setText("310063")
// binding.etPassword.setText("ZHPs@040909")
+// binding.etUsername.setText("310707")
+// binding.etPassword.setText("Wxfnz666#")
+
}
@@ -212,6 +207,17 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() {
startActivity(intent)
})
+ binding.tvBeiAn.setOnClickListener(View.OnClickListener {
+ val intent = Intent(
+ this,
+ BeiAnWebActivity::class.java
+ )
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
+ intent.putExtra("beiAnNo",binding.tvBeiAn.text.toString());
+ startActivity(intent)
+ })
+
+
binding.btnLogin.setOnClickListener(View.OnClickListener {
if (TextUtils.isEmpty(binding.etUsername.text.toString())) {
toastviewbymyself.makeText(context, "用户名不能为空", Toast.LENGTH_LONG).show()
@@ -289,6 +295,7 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() {
val request = NoHttp.createStringRequest(url, RequestMethod.POST)
request.setDefineRequestBodyForJson(json)
+ showLog(url)
NohttpUtils.getInstance().add(this, 0, request, object : HttpListener {
override fun onSucceed(what: Int, response: Response?) {
val jsonResult = response?.get()
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java
index 333e276..df54471 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java
@@ -295,9 +295,12 @@ public class XzjhFragment extends BaseFragment {
//用来捕获数据解析的异常
try {
+ String result = response.get();
+ showLog(String.valueOf(what));
+ showLog(result);
switch (what) {
case 0:
- list = GsonUtils.GsonToBean(response.get(), DjjhList.class);
+ list = GsonUtils.GsonToBean(result, DjjhList.class);
if (list != null) {
if (list.getTotal() != 0) {
djjhs.clear();
@@ -312,7 +315,7 @@ public class XzjhFragment extends BaseFragment {
case 1:
++requestCount;
rwlist = null;
- rwlist = GsonUtils.GsonToBean(response.get(), DjjhRwList.class);
+ rwlist = GsonUtils.GsonToBean(result, DjjhRwList.class);
//保存数据
if (rwlist != null) {
//saveDownData(qylists, qys, requestCount - 1);
@@ -331,7 +334,7 @@ public class XzjhFragment extends BaseFragment {
case 2:
++requestCount;
- AjhjhxzrwList list = GsonUtils.GsonToBean(response.get(), AjhjhxzrwList.class);
+ AjhjhxzrwList list = GsonUtils.GsonToBean(result, AjhjhxzrwList.class);
if (list != null) {
if (list.getTotal() != 0) {
rwqys.clear();
@@ -351,7 +354,7 @@ public class XzjhFragment extends BaseFragment {
break;
case 9:
- ZyInfo info = GsonUtils.GsonToBean(response.get(), ZyInfo.class);
+ ZyInfo info = GsonUtils.GsonToBean(result, ZyInfo.class);
if (info != null) {
if (DataSupport.count("zy") != 0) {
DataSupport.deleteAll(Zy.class);
@@ -395,6 +398,7 @@ public class XzjhFragment extends BaseFragment {
@Override
public void onFailed(int what, Response response) {
+ showLog("onFailed");
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
diff --git a/app/src/main/res/layout/activity_about_me.xml b/app/src/main/res/layout/activity_about_me.xml
index c1b10af..3cee99d 100644
--- a/app/src/main/res/layout/activity_about_me.xml
+++ b/app/src/main/res/layout/activity_about_me.xml
@@ -82,4 +82,64 @@
android:textSize="30px" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_bei_an_web.xml b/app/src/main/res/layout/activity_bei_an_web.xml
new file mode 100644
index 0000000..10f10e9
--- /dev/null
+++ b/app/src/main/res/layout/activity_bei_an_web.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 3eb8dd4..cb0f228 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -172,7 +172,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:layout_marginBottom="50dp"
+ android:layout_marginBottom="80dp"
android:orientation="horizontal">
+
+
+
+
+
+
+
\ No newline at end of file