Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jun 5, 2024. It is now read-only.

Commit d0f8fe1

Browse files
committed
解决博文内容加载失败重复跳转问题
1 parent d40badc commit d0f8fe1

File tree

9 files changed

+27
-13
lines changed

9 files changed

+27
-13
lines changed

‎module-blog/src/main/java/com/rae/cnblogs/blog/fragment/ContentWebViewFragment.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ public void onActivityCreated(Bundle savedInstanceState) {
8080
mSourceTextZoom = getWebView().getSettings().getTextZoom();
8181
initWebView();
8282
initFontSize();
83+
mJavaScriptApi.setEnableWebBlog(false);
84+
8385

8486
// 可刷新接口
8587
if (getParentFragment() instanceof IRefreshable) {

‎module-discover/src/main/res/layout/quick_view_load_more.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
android:layout_width="wrap_content"
5656
android:layout_height="wrap_content"
5757
android:layout_gravity="center"
58-
android:text="码蚁专栏提供技术支持"
58+
android:text="@string/no_more_tips"
5959
android:textColor="@color/dividerColor" />
6060
</FrameLayout>
6161
</FrameLayout>

‎module-middleware/src/main/java/com/rae/cnblogs/CnblogsApplication.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.rae.cnblogs.basic.ApplicationCompat;
1313
import com.rae.cnblogs.basic.BasicApplication;
1414
import com.rae.cnblogs.resource.BuildConfig;
15+
import com.rae.cnblogs.sdk.CnblogsApiFactory;
1516
import com.rae.cnblogs.sdk.UserProvider;
1617
import com.rae.cnblogs.sdk.config.CnblogAppConfig;
1718
import com.rae.cnblogs.sdk.db.DbCnblogs;
@@ -48,6 +49,7 @@ protected void onFirstCreate() {
4849
DbCnblogs.init(this);
4950
// 用户管理
5051
UserProvider.init(this);
52+
CnblogsApiFactory.getInstance(this);
5153
// 码蚁专栏SDK
5254
AntCodeSDK.init(this, "91f8cc0325f8d228d37bd1c9c4ef7e84");
5355
// AntCodeSDK.init(new AntCodeSDK.Builder(this).clientId("91f8cc0325f8d228d37bd1c9c4ef7e84").url("http://192.168.1.7:8081/antcode/index.php/"));

‎module-middleware/src/main/java/com/rae/cnblogs/web/WebViewFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public class WebViewFragment extends BasicFragment {
5353
AppLayout mAppLayout;
5454
private String mUrl;
5555
private String mRawUrl;
56-
private RaeJavaScriptBridge mJavaScriptApi;
56+
protected RaeJavaScriptBridge mJavaScriptApi;
5757
private WebViewClient mRaeWebViewClient;
5858
private boolean mEnablePullToRefresh = true;
5959

‎module-middleware/src/main/java/com/rae/cnblogs/web/client/AppJavaScript.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public void setHtml(@NonNull String html) {
5656
// 当网页加载完毕的时候,自动检查是否为博文,跳转到对应的博文界面
5757
Document document = Jsoup.parse(html);
5858
final String title = document.title();
59+
if (!mEnableWebBlog) return;
5960

6061
Elements elements = document.select(".postBody");
6162
if (elements.size() <= 0) {

‎module-middleware/src/main/java/com/rae/cnblogs/web/client/RaeJavaScriptBridge.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
public class RaeJavaScriptBridge {
2020

2121
private WeakReference<Context> mReference;
22+
protected boolean mEnableWebBlog = true; // 是否允许自动优化博文
2223

2324
public RaeJavaScriptBridge(Context context) {
2425
mReference = new WeakReference<>(context);
@@ -89,4 +90,8 @@ public String getString(int resId) {
8990
public String getString(int resId, Object... args) {
9091
return getContext().getString(resId, args);
9192
}
93+
94+
public void setEnableWebBlog(boolean value) {
95+
mEnableWebBlog = value;
96+
}
9297
}

‎module-sdk/src/main/java/com/rae/cnblogs/sdk/CnblogsApiProvider.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.rae.cnblogs.sdk;
22

33
import android.content.Context;
4+
import android.support.annotation.Nullable;
45

56
import com.rae.cnblogs.sdk.api.IBlogApi;
67
import com.rae.cnblogs.sdk.api.IBlogQuestionApi;
@@ -18,6 +19,7 @@
1819
import com.rae.cnblogs.sdk.interceptor.RequestInterceptor;
1920
import com.squareup.okhttp3.OkHttpExtBuilder;
2021

22+
import java.lang.ref.WeakReference;
2123
import java.util.concurrent.TimeUnit;
2224

2325
import okhttp3.OkHttpClient;
@@ -31,10 +33,10 @@
3133
public abstract class CnblogsApiProvider {
3234

3335
private final Retrofit mRetrofit;
34-
private final Context mContext; // application context
36+
private final WeakReference<Context> mContext; // application context
3537

3638
CnblogsApiProvider(Context context) {
37-
mContext = context.getApplicationContext();
39+
mContext = newWeakReference<>(context.getApplicationContext());
3840
OkHttpExtBuilder builder = new OkHttpExtBuilder();
3941

4042
// 调试模式启用接口日志打印
@@ -68,8 +70,9 @@ Retrofit getRetrofit() {
6870
return mRetrofit;
6971
}
7072

73+
@Nullable
7174
protected Context getContext() {
72-
return mContext;
75+
return mContext.get();
7376
}
7477

7578
/**

‎module-sdk/src/main/java/com/rae/cnblogs/sdk/api/impl/CategoryApiImpl.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.Gson;
66
import com.google.gson.GsonBuilder;
77
import com.google.gson.reflect.TypeToken;
8+
import com.rae.cnblogs.sdk.AppGson;
89
import com.rae.cnblogs.sdk.Empty;
910
import com.rae.cnblogs.sdk.api.ICategoryApi;
1011
import com.rae.cnblogs.sdk.bean.CategoryBean;
@@ -32,16 +33,15 @@ public class CategoryApiImpl implements ICategoryApi {
3233
private final Gson mGson;
3334

3435
public CategoryApiImpl(Context context) {
35-
this.mContext = context.getApplicationContext();
36+
this.mContext = context;
3637
GsonBuilder builder = new GsonBuilder();
3738
builder.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC);
38-
mGson = builder.create();
39+
mGson = AppGson.get();
3940
}
4041

4142
private List<CategoryBean> getFromAssets() {
42-
String json = readString("category.json").replace("\r\n", "");
43-
if (json == null) return null;
4443
try {
44+
String json = readString().replace("\r\n", "");
4545
return mGson.fromJson(json, new TypeToken<List<CategoryBean>>() {
4646
}.getType());
4747
} catch (Exception e) {
@@ -50,9 +50,10 @@ private List<CategoryBean> getFromAssets() {
5050
}
5151
}
5252

53-
private String readString(StringfileName) {
53+
private String readString() {
5454
try {
55-
InputStream stream = mContext.getAssets().open(fileName);
55+
if (mContext == null) return "";
56+
InputStream stream = mContext.getAssets().open("category.json");
5657
BufferedInputStream bis = new BufferedInputStream(stream);
5758
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
5859
byte[] buffer = new byte[128];
@@ -70,7 +71,7 @@ private String readString(String fileName) {
7071
e.printStackTrace();
7172
}
7273

73-
return null;
74+
return "";
7475
}
7576

7677
@Override
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<resources>
22
<string name="app_name">module-widget</string>
3-
<string name="no_more_tips">- 技术改变世界 -</string>
3+
<string name="no_more_tips">技术改变世界</string>
44
<string name="confirm">知道了</string>
55
</resources>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /