2
2
3
3
import android .annotation .SuppressLint ;
4
4
import android .content .Context ;
5
+ import android .content .Intent ;
6
+ import android .net .Uri ;
5
7
import android .os .Build ;
6
8
import android .util .AttributeSet ;
7
9
import android .util .Base64 ;
@@ -24,7 +26,9 @@ public class MarkdownView extends WebView {
24
26
private static final String TAG = MarkdownView .class .getSimpleName ();
25
27
private static final String IMAGE_PATTERN = "!\\ [(.*)\\ ]\\ ((.*)\\ )" ;
26
28
29
+ private final Context mContext ;
27
30
private String mPreviewText ;
31
+ private boolean mIsOpenUrlInBrowser ;
28
32
29
33
public MarkdownView (Context context ) {
30
34
this (context , null );
@@ -36,6 +40,7 @@ public MarkdownView(Context context, AttributeSet attrs) {
36
40
37
41
public MarkdownView (Context context , AttributeSet attrs , int defStyleAttr ) {
38
42
super (context , attrs , defStyleAttr );
43
+ mContext = context ;
39
44
initialize ();
40
45
}
41
46
@@ -48,6 +53,15 @@ public void onPageFinished(WebView view, String url) {
48
53
evaluateJavascript (mPreviewText , null );
49
54
}
50
55
}
56
+
57
+ @ Override public boolean shouldOverrideUrlLoading (WebView view , String url ) {
58
+ if (isOpenUrlInBrowser ()) {
59
+ Intent intent = new Intent (Intent .ACTION_VIEW , Uri .parse (url ));
60
+ mContext .startActivity (intent );
61
+ return true ;
62
+ }
63
+ return false ;
64
+ }
51
65
});
52
66
loadUrl ("file:///android_asset/html/preview.html" );
53
67
getSettings ().setJavaScriptEnabled (true );
@@ -166,4 +180,12 @@ private String imgEx2BaseType(String text) {
166
180
return "" ;
167
181
}
168
182
}
183
+
184
+ public boolean isOpenUrlInBrowser () {
185
+ return mIsOpenUrlInBrowser ;
186
+ }
187
+
188
+ public void setOpenUrlInBrowser (boolean openUrlInBrowser ) {
189
+ mIsOpenUrlInBrowser = openUrlInBrowser ;
190
+ }
169
191
}
0 commit comments