Skip to content

Commit bc69431

Browse files
committed
完善WebViewActivity
1 parent c963aef commit bc69431

File tree

11 files changed

+185
-113
lines changed

11 files changed

+185
-113
lines changed

README.md

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,7 @@
109109
# 导入指南
110110
111111
``` groovy
112-
// 测试版
113-
114-
def quicklib = "4.0.4"
112+
def quicklib = "4.0.5"
115113
116114
// quicklib(Base)
117115
implementation "com.sdwfqin.quicklib:quicklib:$quicklib"
@@ -123,22 +121,6 @@ implementation "com.sdwfqin.quicklib:paylib:$quicklib"
123121
implementation "com.sdwfqin.quicklib:imageloader:$quicklib"
124122
// Android 自定义View组件
125123
implementation "com.sdwfqin.quicklib:widget:$quicklib"
126-
127-
// =================================================
128-
129-
// 稳定版
130-
131-
// quicklib(Base)
132-
implementation 'com.sdwfqin.quicklib:quicklib:3.3.0'
133-
134-
// 支付模块
135-
implementation 'com.sdwfqin.quicklib:paylib:3.1.0'
136-
137-
// Android 图片加载库(Glide封装)
138-
implementation 'com.sdwfqin.quick:imageloader:3.2.0'
139-
140-
// Android 自定义View组件
141-
implementation 'com.sdwfqin.quick:widget:3.2.0'
142124
```
143125

144126
# 相关文档

app/release/app-release.apk

1.58 KB
Binary file not shown.

app/src/main/AndroidManifest.xml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
android:supportsRtl="true"
3434
android:theme="@style/AppTheme"
3535
tools:ignore="GoogleAppIndexingWarning">
36+
3637
<!-- FileProvider文件共享 -->
3738
<provider
3839
android:name="androidx.core.content.FileProvider"
@@ -78,10 +79,21 @@
7879
<activity
7980
android:name=".ui.components.ShowSvgActivity"
8081
android:configChanges="orientation|keyboardHidden|screenSize" />
81-
<activity android:name=".ui.components.WindowFloatAndScreenshotActivity" />
82-
<activity android:name=".ui.mvvm.WeatherMvvmActivity" />
83-
<activity android:name=".ui.mvp.WeatherMvpActivity" />
84-
<activity android:name=".ui.components.CircleProgressDemoActivity" />
82+
<activity
83+
android:name=".ui.components.WebViewMainActivity"
84+
android:configChanges="orientation|keyboardHidden|screenSize" />
85+
<activity
86+
android:name=".ui.components.WindowFloatAndScreenshotActivity"
87+
android:configChanges="orientation|keyboardHidden|screenSize" />
88+
<activity
89+
android:name=".ui.mvvm.WeatherMvvmActivity"
90+
android:configChanges="orientation|keyboardHidden|screenSize" />
91+
<activity
92+
android:name=".ui.mvp.WeatherMvpActivity"
93+
android:configChanges="orientation|keyboardHidden|screenSize" />
94+
<activity
95+
android:name=".ui.components.CircleProgressDemoActivity"
96+
android:configChanges="orientation|keyboardHidden|screenSize" />
8597
<activity
8698
android:name=".wxapi.WXPayEntryActivity"
8799
android:exported="true"

app/src/main/java/com/sdwfqin/quickseed/base/ArouterConstants.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ public class ArouterConstants {
4343
*/
4444
public static final String COMPONENTS_SHOWSVG = "/components/showsvg";
4545

46-
/**
47-
* 自定义WebView
48-
*/
49-
public static final String COMPONENTS_CUSTOMWEBVIEW = "/components/customwebview";
50-
5146
/**
5247
* 悬浮窗与截图
5348
*/
@@ -67,4 +62,14 @@ public class ArouterConstants {
6762
* 圆(方)形加载进度条
6863
*/
6964
public static final String COMPONENTS_CIRCLEPROGRESSDEMO = "/components/circleprogressdemo";
65+
66+
/**
67+
* WebViewDemo
68+
*/
69+
public static final String COMPONENTS_WEBVIEW = "/components/webview";
70+
71+
/**
72+
* 自定义WebView
73+
*/
74+
public static final String COMPONENTS_CUSTOMWEBVIEW = "/components/customwebview";
7075
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.sdwfqin.quickseed.ui.components;
2+
3+
import android.widget.ArrayAdapter;
4+
5+
import com.alibaba.android.arouter.facade.annotation.Route;
6+
import com.alibaba.android.arouter.launcher.ARouter;
7+
import com.sdwfqin.quicklib.base.BaseActivity;
8+
import com.sdwfqin.quicklib.base.QuickConstants;
9+
import com.sdwfqin.quicklib.webview.QuickWebViewActivity;
10+
import com.sdwfqin.quicklib.webview.QuickWebViewLoadDataActivity;
11+
import com.sdwfqin.quickseed.R;
12+
import com.sdwfqin.quickseed.base.ArouterConstants;
13+
import com.sdwfqin.quickseed.databinding.ActivitySampleListBinding;
14+
15+
/**
16+
* WebView示例
17+
* <p>
18+
*
19+
* @author 张钦
20+
* @date 2020/5/27
21+
*/
22+
@Route(path = ArouterConstants.COMPONENTS_WEBVIEW)
23+
public class WebViewMainActivity extends BaseActivity<ActivitySampleListBinding> {
24+
25+
private String[] mTitle = new String[]{
26+
"默认",
27+
"自定义",
28+
"加载本地html"
29+
};
30+
31+
@Override
32+
protected ActivitySampleListBinding getViewBinding() {
33+
return ActivitySampleListBinding.inflate(getLayoutInflater());
34+
}
35+
36+
@Override
37+
protected void initEventAndData() {
38+
mTopBar.setTitle("WebView Demo");
39+
mTopBar.addLeftBackImageButton().setOnClickListener(v -> finish());
40+
41+
mBinding.list.setAdapter(new ArrayAdapter<>(mContext, R.layout.item_list, R.id.tv_items, mTitle));
42+
}
43+
44+
@Override
45+
protected void initClickListener() {
46+
mBinding.list.setOnItemClickListener((adapterView, view, i, l) -> {
47+
switch (i) {
48+
case 0:
49+
QuickWebViewActivity.launch("https://www.baidu.com");
50+
break;
51+
case 1:
52+
ARouter.getInstance().build(ArouterConstants.COMPONENTS_CUSTOMWEBVIEW).navigation();
53+
break;
54+
case 2:
55+
QuickWebViewLoadDataActivity.launch(null, "测试标题", QuickConstants.HEAD + "哈哈哈哈" + QuickConstants.END, false);
56+
break;
57+
default:
58+
}
59+
});
60+
}
61+
}

app/src/main/java/com/sdwfqin/quickseed/ui/main/MainFragment.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.sdwfqin.quicklib.base.BaseFragment;
1414
import com.sdwfqin.quicklib.dialog.HintDialog;
1515
import com.sdwfqin.quicklib.imagepreview.ImagePreviewActivity;
16-
import com.sdwfqin.quicklib.webview.QuickWebViewActivity;
1716
import com.sdwfqin.quickseed.R;
1817
import com.sdwfqin.quickseed.base.ArouterConstants;
1918
import com.sdwfqin.quickseed.databinding.FragmentMainBinding;
@@ -37,10 +36,9 @@ public class MainFragment extends BaseFragment<FragmentMainBinding> {
3736
"Camerax(支持二维码识别)",
3837
"VLayoutDemo",
3938
"展示SVG图片",
40-
"跳转网页",
41-
"自定义Webview",
39+
"WebView",
4240
"悬浮窗与截图",
43-
"弹窗",
41+
"支持换肤的弹窗",
4442
"Mvvm Demo",
4543
"Mvp Demo",
4644
"圆(方)形加载进度条",
@@ -88,15 +86,12 @@ protected void initClickListener() {
8886
ARouter.getInstance().build(ArouterConstants.COMPONENTS_SHOWSVG).navigation();
8987
break;
9088
case 7:
91-
QuickWebViewActivity.launch("https://www.baidu.com");
89+
ARouter.getInstance().build(ArouterConstants.COMPONENTS_WEBVIEW).navigation();
9290
break;
9391
case 8:
94-
ARouter.getInstance().build(ArouterConstants.COMPONENTS_CUSTOMWEBVIEW).navigation();
95-
break;
96-
case 9:
9792
ARouter.getInstance().build(ArouterConstants.COMPONENTS_WINDOWFLOATANDSCREENSHOT).navigation();
9893
break;
99-
case 10:
94+
case 9:
10095
HintDialog hintDialog = new HintDialog(mContext);
10196
hintDialog.setFollowSkin(true);
10297
hintDialog.show();
@@ -115,13 +110,13 @@ public void right() {
115110
}
116111
});
117112
break;
118-
case 11:
113+
case 10:
119114
ARouter.getInstance().build(ArouterConstants.COMPONENTS_MVVM).navigation();
120115
break;
121-
case 12:
116+
case 11:
122117
ARouter.getInstance().build(ArouterConstants.COMPONENTS_MVP).navigation();
123118
break;
124-
case 13:
119+
case 12:
125120
ARouter.getInstance().build(ArouterConstants.COMPONENTS_CIRCLEPROGRESSDEMO).navigation();
126121
break;
127122
default:
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:id="@+id/list"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent" />

config.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ext {
22

3-
versionCode = 40094
4-
versionName = "4.0.4"
3+
versionCode = 40095
4+
versionName = "4.0.5"
55

66
qmui = "2.0.0-alpha09"
77
okhttp = "4.6.0"

quicklib/src/main/java/com/sdwfqin/quicklib/webview/QuickBaseWebViewActivity.java

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44
import android.webkit.WebView;
55
import android.widget.LinearLayout;
66

7-
import com.blankj.utilcode.util.StringUtils;
87
import com.just.agentweb.AgentWeb;
98
import com.just.agentweb.WebChromeClient;
109
import com.sdwfqin.quicklib.base.BaseActivity;
1110
import com.sdwfqin.quicklib.databinding.QuickActivityWebViewBinding;
1211

1312
/**
14-
* 描述:
13+
* 描述:WebViewActivity基类
1514
*
1615
* @author zhangqin
1716
* @date 2018/6/19
@@ -28,14 +27,6 @@ protected QuickActivityWebViewBinding getViewBinding() {
2827

2928
@Override
3029
protected void initEventAndData() {
31-
32-
if (!StringUtils.isEmpty(getUrl())) {
33-
mUrl = getUrl();
34-
} else {
35-
showMsg("未获取到url地址");
36-
finish();
37-
}
38-
3930
mTopBar.setTitle(getActivityTitle());
4031

4132
mTopBar.addLeftBackImageButton().setOnClickListener(v -> {
@@ -48,27 +39,28 @@ protected void initEventAndData() {
4839
initWebView();
4940
}
5041

51-
@Override
52-
protected void initClickListener() {
53-
54-
}
55-
56-
private void initWebView() {
57-
mAgentWeb = AgentWeb.with(mContext)
42+
protected AgentWeb.CommonBuilder getWebViewCommonBuilder() {
43+
return AgentWeb.with(mContext)
5844
//传入AgentWeb 的父控件 ,如果父控件为 RelativeLayout , 那么第二参数需要传入 RelativeLayout.LayoutParams ,第一个参数和第二个参数应该对应。
5945
.setAgentWebParent(mBinding.container, new LinearLayout.LayoutParams(-1, -1))
6046
.useDefaultIndicator()// 使用默认进度条
6147
.setWebChromeClient(new WebChromeClient() {
6248
@Override
6349
public void onReceivedTitle(WebView view, String title) {
6450
super.onReceivedTitle(view, title);
65-
mTopBar.setTitle(title);
51+
if (isAutoSetTitle()) {
52+
mTopBar.setTitle(title);
53+
}
6654
}
67-
})
55+
});
56+
}
57+
58+
protected void initWebView() {
59+
mAgentWeb = getWebViewCommonBuilder()
6860
//.defaultProgressBarColor() // 使用默认进度条颜色
6961
.createAgentWeb()
7062
.ready()
71-
.go(mUrl);
63+
.go(mUrl = getUrl());
7264
}
7365

7466
@Override
@@ -107,17 +99,20 @@ protected void onDestroy() {
10799

108100
/**
109101
* 设置url地址
110-
*
111-
* @return
112102
*/
113103
public abstract String getUrl();
114104

115105
/**
116106
* 设置标题
117-
*
118-
* @return
119107
*/
120108
public String getActivityTitle() {
121109
return "";
122110
}
111+
112+
/**
113+
* 是否监听标题变化
114+
*/
115+
protected boolean isAutoSetTitle() {
116+
return true;
117+
}
123118
}

quicklib/src/main/java/com/sdwfqin/quicklib/webview/QuickWebViewActivity.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.sdwfqin.quicklib.base.QuickArouterConstants;
66

77
/**
8-
* 描述:WebViewActivity
8+
* 描述:默认WebViewActivity
99
*
1010
* @author 张钦
1111
* @date 2018/1/16
@@ -19,7 +19,7 @@ public class QuickWebViewActivity extends QuickBaseWebViewActivity {
1919
* @param url 页面地址
2020
*/
2121
public static void launch(String url) {
22-
launch(url, null);
22+
launch(url, "");
2323
}
2424

2525
/**
@@ -29,11 +29,23 @@ public static void launch(String url) {
2929
* @param title 默认标题
3030
*/
3131
public static void launch(String url, String title) {
32+
launch(url, "", true);
33+
}
34+
35+
/**
36+
* 加载网页,带有默认标题
37+
*
38+
* @param url 页面地址
39+
* @param title 默认标题
40+
* @param autoSetTitle 是否自动监听设置标题
41+
*/
42+
public static void launch(String url, String title, boolean autoSetTitle) {
3243
ARouter
3344
.getInstance()
3445
.build(QuickArouterConstants.QUICK_WEBVIEW)
3546
.withString("url", url)
3647
.withString("title", title)
48+
.withBoolean("autoSetTitle", autoSetTitle)
3749
.navigation();
3850
}
3951

@@ -49,4 +61,9 @@ public String getActivityTitle() {
4961
}
5062
return super.getActivityTitle();
5163
}
64+
65+
@Override
66+
protected boolean isAutoSetTitle() {
67+
return getIntent().getBooleanExtra("autoSetTitle", true);
68+
}
5269
}

0 commit comments

Comments
 (0)