Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds-android
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
云深项目组
beyond-clouds-android
Commits
8695b561
Commit
8695b561
authored
Mar 22, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
文章内容拦截本站地址
parent
9deaa193
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
66 additions
and
6 deletions
+66
-6
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/blog/BlogDetailActivity.java
+2
-2
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/project/ProjectDetailActivity.java
+2
-2
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/question/QuestionDetailActivity.java
+2
-2
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/webview/BeyondWebViewClient.java
+60
-0
No files found.
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/blog/BlogDetailActivity.java
View file @
8695b561
...
@@ -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
Beyond
WebViewClient
()
{
@Override
@Override
public
void
onPageFinished
(
WebView
view
,
String
url
)
{
public
void
onPageFinished
(
WebView
view
,
String
url
)
{
super
.
onPageFinished
(
view
,
url
);
super
.
onPageFinished
(
view
,
url
);
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/project/ProjectDetailActivity.java
View file @
8695b561
...
@@ -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
Beyond
WebViewClient
()
{
@Override
@Override
public
void
onPageFinished
(
WebView
view
,
String
url
)
{
public
void
onPageFinished
(
WebView
view
,
String
url
)
{
super
.
onPageFinished
(
view
,
url
);
super
.
onPageFinished
(
view
,
url
);
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/question/QuestionDetailActivity.java
View file @
8695b561
...
@@ -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
Beyond
WebViewClient
()
{
@Override
@Override
public
void
onPageFinished
(
WebView
view
,
String
url
)
{
public
void
onPageFinished
(
WebView
view
,
String
url
)
{
super
.
onPageFinished
(
view
,
url
);
super
.
onPageFinished
(
view
,
url
);
...
...
app/src/main/java/cn/yunliyunwai/beyondclouds/ui/webview/BeyondWebViewClient.java
0 → 100644
View file @
8695b561
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
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment