java - 如何打开 html 字符串“a href”到 Webview?
问题描述
如何打开a href
仅在 webview 上的 html 字符串而不是在浏览器上?
我正在使用 LinkMovementMethod,这可以在其他应用程序(例如来自 youtube 的视频)上打开它,但我有一些链接需要仅在 webview 上打开。
这是一个示例 html 字符串
String html_text = "<h1>sample text</h1><p><small>February 1 1970</small></p><p class=\"text-center\"><img src=\"https://www.google.com\" /></p><p>sample (<a href=\"https://google.com\">here</a>).</p>"
我需要 a href 仅在 webview 上打开。
这是我的代码
详细活动
public class DetailActivity extends AppCompatActivity implements Html.ImageGetter {
private TextView newsContentTv;
private WebView newsWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_news);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
newsWebView = (WebView) findViewById(R.id.newsWebView);
setSupportActionBar(toolbar);
// add back arrow to toolbar
if (getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
newsContentTv = (TextView) findViewById(R.id.textNewsContext);
Intent i = getIntent();
String news_content = i.getStringExtra("detail_content");
Spanned spanned = Html.fromHtml(news_content, this, null);
Spannable spannable = new SpannableString( Html.fromHtml(news_content) );
newsContentTv.setText(spanned);
newsContentTv.setMovementMethod(LinkMovementMethod.getInstance());
}
任何帮助将非常感激。
解决方案
// Create an unencoded HTML string
// then convert the unencoded HTML string into bytes, encode
// it with Base64, and load the data.
String html_text =
"<h1>sample text</h1><p><small>February 1 1970</small></p><p class=\"text-center\"><img src=\"https://www.google.com\" /></p><p>sample (<a href=\"https://google.com\">here</a>).</p>";
String encodedHtml = Base64.encodeToString(html_text.getBytes(),
Base64.NO_PADDING);
newsWebView.loadData(encodedHtml, "text/html", "base64");
我希望这能帮到您。
推荐阅读
- android - 使用 X.509 证书进行 wi-fi 企业配置需要帮助
- microsoft-graph-api - 取消约会会导致内部服务器错误
- android - android约束布局流强制第二个元素在其基本上隐藏之前
- jasper-reports - 如何更正此 Jasper,以便文本字段拉伸其高度以显示字符串的所有 500 个字符
- python - psycopg2 使用动态 WHERE 批量更新 execute_values
- ios - 在 iOS 应用程序中找不到 .dylib 的路径
- excel - 从 Word 到 Excel 的多级列表
- asp.net-mvc - HtmlHelper 不包含单个表单的 BeginForm 定义
- flutter - Flutter 访问我从 NavigationService 传递的值
- sql - 转置表更改日志格式以显示最大和最小日期