Commit 8695b561 by 段启岩

文章内容拦截本站地址

parent 9deaa193
...@@ -6,7 +6,6 @@ import android.view.LayoutInflater; ...@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
...@@ -23,6 +22,7 @@ import cn.yunliyunwai.beyondclouds.R; ...@@ -23,6 +22,7 @@ import cn.yunliyunwai.beyondclouds.R;
import cn.yunliyunwai.beyondclouds.base.BaseActivity; import cn.yunliyunwai.beyondclouds.base.BaseActivity;
import cn.yunliyunwai.beyondclouds.data.model.UserInfo; import cn.yunliyunwai.beyondclouds.data.model.UserInfo;
import cn.yunliyunwai.beyondclouds.databinding.ActivityBlogDetailBinding; import cn.yunliyunwai.beyondclouds.databinding.ActivityBlogDetailBinding;
import cn.yunliyunwai.beyondclouds.ui.webview.BeyondWebViewClient;
import cn.yunliyunwai.beyondclouds.util.ContextUtils; import cn.yunliyunwai.beyondclouds.util.ContextUtils;
import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform; import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.HtmlUtils; import cn.yunliyunwai.beyondclouds.util.HtmlUtils;
...@@ -87,7 +87,7 @@ public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, Activi ...@@ -87,7 +87,7 @@ public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, Activi
settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebViewClient(new WebViewClient() { webView.setWebViewClient(new BeyondWebViewClient() {
@Override @Override
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url); super.onPageFinished(view, url);
......
...@@ -6,7 +6,6 @@ import android.view.LayoutInflater; ...@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
...@@ -23,6 +22,7 @@ import cn.yunliyunwai.beyondclouds.R; ...@@ -23,6 +22,7 @@ import cn.yunliyunwai.beyondclouds.R;
import cn.yunliyunwai.beyondclouds.base.BaseActivity; import cn.yunliyunwai.beyondclouds.base.BaseActivity;
import cn.yunliyunwai.beyondclouds.data.model.UserInfo; import cn.yunliyunwai.beyondclouds.data.model.UserInfo;
import cn.yunliyunwai.beyondclouds.databinding.ActivityProjectDetailBinding; import cn.yunliyunwai.beyondclouds.databinding.ActivityProjectDetailBinding;
import cn.yunliyunwai.beyondclouds.ui.webview.BeyondWebViewClient;
import cn.yunliyunwai.beyondclouds.util.ContextUtils; import cn.yunliyunwai.beyondclouds.util.ContextUtils;
import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform; import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.HtmlUtils; import cn.yunliyunwai.beyondclouds.util.HtmlUtils;
...@@ -87,7 +87,7 @@ public class ProjectDetailActivity extends BaseActivity<ProjectDetailViewModel, ...@@ -87,7 +87,7 @@ public class ProjectDetailActivity extends BaseActivity<ProjectDetailViewModel,
settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebViewClient(new WebViewClient() { webView.setWebViewClient(new BeyondWebViewClient() {
@Override @Override
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url); super.onPageFinished(view, url);
......
...@@ -6,7 +6,6 @@ import android.view.LayoutInflater; ...@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
...@@ -23,6 +22,7 @@ import cn.yunliyunwai.beyondclouds.R; ...@@ -23,6 +22,7 @@ import cn.yunliyunwai.beyondclouds.R;
import cn.yunliyunwai.beyondclouds.base.BaseActivity; import cn.yunliyunwai.beyondclouds.base.BaseActivity;
import cn.yunliyunwai.beyondclouds.data.model.UserInfo; import cn.yunliyunwai.beyondclouds.data.model.UserInfo;
import cn.yunliyunwai.beyondclouds.databinding.ActivityQuestionDetailBinding; import cn.yunliyunwai.beyondclouds.databinding.ActivityQuestionDetailBinding;
import cn.yunliyunwai.beyondclouds.ui.webview.BeyondWebViewClient;
import cn.yunliyunwai.beyondclouds.util.ContextUtils; import cn.yunliyunwai.beyondclouds.util.ContextUtils;
import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform; import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.HtmlUtils; import cn.yunliyunwai.beyondclouds.util.HtmlUtils;
...@@ -87,7 +87,7 @@ public class QuestionDetailActivity extends BaseActivity<QuestionDetailViewModel ...@@ -87,7 +87,7 @@ public class QuestionDetailActivity extends BaseActivity<QuestionDetailViewModel
settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebViewClient(new WebViewClient() { webView.setWebViewClient(new BeyondWebViewClient() {
@Override @Override
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url); super.onPageFinished(view, url);
......
package cn.yunliyunwai.beyondclouds.ui.webview;
import android.content.Context;
import android.content.Intent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.yunliyunwai.beyondclouds.ui.blog.BlogDetailActivity;
import cn.yunliyunwai.beyondclouds.ui.project.ProjectDetailActivity;
import cn.yunliyunwai.beyondclouds.ui.question.QuestionDetailActivity;
public class BeyondWebViewClient extends WebViewClient {
private static final Pattern PATTERN_BLOG_DETAIL = Pattern.compile("https://www\\.yunliyunwai\\.cn/blog/detail/([A-Za-z0-9]{32})");
private static final Pattern PATTERN_PROJECT_DETAIL = Pattern.compile("https://www\\.yunliyunwai\\.cn/project/detail/([0-9]+)");
private static final Pattern PATTERN_QUESTION_DETAIL = Pattern.compile("https://www\\.yunliyunwai\\.cn/answer/detail/([A-Za-z0-9]{32})");
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Context context = view.getContext();
Intent intent = new Intent();
// 匹配博客
Matcher matcher = PATTERN_BLOG_DETAIL.matcher(url);
if (matcher.find()) {
String blogId = matcher.group(1);
intent.putExtra(BlogDetailActivity.ARG_BLOG_ID, blogId);
intent.setClass(context, BlogDetailActivity.class);
context.startActivity(intent);
return false;
}
// 匹配项目
matcher = PATTERN_PROJECT_DETAIL.matcher(url);
if (matcher.find()) {
String projectId = matcher.group(1);
intent.putExtra(ProjectDetailActivity.ARG_PROJECT_ID, projectId);
intent.setClass(context, ProjectDetailActivity.class);
context.startActivity(intent);
return false;
}
// 匹配问答
matcher = PATTERN_QUESTION_DETAIL.matcher(url);
if (matcher.find()) {
String questionId = matcher.group(1);
intent.putExtra(QuestionDetailActivity.ARG_QUESTION_ID, questionId);
intent.setClass(context, QuestionDetailActivity.class);
context.startActivity(intent);
return false;
}
return super.shouldOverrideUrlLoading(view, url);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment