Skip to content

Commit e2fa3a9

Browse files
author
Mukesh Solanki
authored
Merge pull request #8 from LittleHans8/master
add new feature-OpenUrlInBrowser
2 parents 484e103 + 8414eee commit e2fa3a9

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

app/src/main/java/com/mukesh/markdownview/example/MainActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ public class MainActivity extends AppCompatActivity {
1010
super.onCreate(savedInstanceState);
1111
setContentView(R.layout.activity_main);
1212
MarkdownView markdownView = (MarkdownView) findViewById(R.id.markdown_view);
13-
markdownView.setMarkDownText("# Hello World\nThis is a simple markdown");
13+
markdownView.setMarkDownText("# Hello World\nThis is a simple markdown\n"
14+
+ "https://github.com/mukeshsolanki/MarkdownView-Android/");
1415
//markdownView.loadMarkdownFromAssets("README.md");
16+
markdownView.setOpenUrlInBrowser(true); // default false
17+
1518
}
1619
}

markdownview/src/main/java/com/mukesh/MarkdownView.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import android.annotation.SuppressLint;
44
import android.content.Context;
5+
import android.content.Intent;
6+
import android.net.Uri;
57
import android.os.Build;
68
import android.util.AttributeSet;
79
import android.util.Base64;
@@ -24,7 +26,9 @@ public class MarkdownView extends WebView {
2426
private static final String TAG = MarkdownView.class.getSimpleName();
2527
private static final String IMAGE_PATTERN = "!\\[(.*)\\]\\((.*)\\)";
2628

29+
private final Context mContext;
2730
private String mPreviewText;
31+
private boolean mIsOpenUrlInBrowser;
2832

2933
public MarkdownView(Context context) {
3034
this(context, null);
@@ -36,6 +40,7 @@ public MarkdownView(Context context, AttributeSet attrs) {
3640

3741
public MarkdownView(Context context, AttributeSet attrs, int defStyleAttr) {
3842
super(context, attrs, defStyleAttr);
43+
mContext = context;
3944
initialize();
4045
}
4146

@@ -48,6 +53,15 @@ public void onPageFinished(WebView view, String url) {
4853
evaluateJavascript(mPreviewText, null);
4954
}
5055
}
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+
}
5165
});
5266
loadUrl("file:///android_asset/html/preview.html");
5367
getSettings().setJavaScriptEnabled(true);
@@ -166,4 +180,12 @@ private String imgEx2BaseType(String text) {
166180
return "";
167181
}
168182
}
183+
184+
public boolean isOpenUrlInBrowser() {
185+
return mIsOpenUrlInBrowser;
186+
}
187+
188+
public void setOpenUrlInBrowser(boolean openUrlInBrowser) {
189+
mIsOpenUrlInBrowser = openUrlInBrowser;
190+
}
169191
}

0 commit comments

Comments
 (0)