[英]How to get href links opens into webView when clicking from html string in android?
I am displaying a html string into a textview which contains some links, i am diplaying that with the help of below code : 我在一个textview中显示一个html字符串,其中包含一些链接,我在下面的代码的帮助下diplaying它:
itemContent.setText(Html.fromHtml(jo.getString("itemContent")));
itemContent.setMovementMethod(LinkMovementMethod.getInstance());
clicking on that links direct me to web browser and successfully opens that link, but i want to open that links into my app's webView. 点击该链接将我引导至网络浏览器并成功打开该链接,但我想将该链接打开到我的应用程序的webView中。 How could i do this??
我怎么能这样做?
Yeah!!! 是啊! finally i've done with what i want.
最后我完成了我想要的东西。 I used a
webView
client to achieve this. 我使用
webView
客户端来实现这一目标。 The following is the method in which I have passed my html String containing url's : 以下是我传递包含url的html字符串的方法:
@SuppressLint("SetJavaScriptEnabled")
private void loadWebView(WebView webView,String htmlString)
{
try {
final String mimeType = "text/html";
final String encoding = "UTF-8";
WebViewClient yourWebClient = new WebViewClient()
{
// Override page so it's load on my view only
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// This line we let me load only pages inside Webpage
if ( url.contains("") == true )
// Load new URL Don't override URL Link
return false;
// Return true to override url loading (In this case do nothing).
return true;
}
};
// Get Web view
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true); //Zoom Control on web (You don't need this
//if ROM supports Multi-Touch
webView.getSettings().setBuiltInZoomControls(true); //Enable Multitouch if supported by ROM
webView.setWebViewClient(yourWebClient);
// Load URL
webView.loadDataWithBaseURL("", htmlString, mimeType, encoding, "");
} catch (Exception e) {
e.printStackTrace();
}
}
Instead of using default LinkMovementMethod, make your own implementation like... 而不是使用默认的LinkMovementMethod,使您自己的实现像......
itemContent.setMovementMethod(new MovementMethod() {
@Override
public boolean onTrackballEvent(TextView widget, Spannable text,
MotionEvent event) {
// TODO: Do here what you want
return false;
}
@Override
public boolean onTouchEvent(TextView widget, Spannable text,
MotionEvent event) {
// TODO: Do here what you want
return false;
}
@Override
public void onTakeFocus(TextView widget, Spannable text, int direction) {
// TODO: Do here what you want
}
@Override
public boolean onKeyUp(TextView widget, Spannable text, int keyCode,
KeyEvent event) {
// TODO: Do here what you want
return false;
}
@Override
public boolean onKeyOther(TextView view, Spannable text, KeyEvent event) {
// TODO: Do here what you want
return false;
}
@Override
public boolean onKeyDown(TextView widget, Spannable text, int keyCode,
KeyEvent event) {
// TODO: Do here what you want
return false;
}
@Override
public boolean onGenericMotionEvent(TextView widget, Spannable text,
MotionEvent event) {
// TODO: Do here what you want
return false;
}
@Override
public void initialize(TextView widget, Spannable text) {
// TODO: Do here what you want
}
@Override
public boolean canSelectArbitrarily() {
// TODO: Do here what you want
return false;
}
});
See documentation HERE to find your best suitable method among them...:) 请参阅此处的文档,找到最合适的方法...... :)
Hope this helps... 希望这可以帮助...
我这样做的方法只是将textview的文本设置为url,然后单击使用
myWebView.loadUrl(tV.getText().toString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.