android - 如何有意图地在资产文件夹中共享来自html的纯格式文本
问题描述
我在下面使用此代码时没有注意到共享意图直接从存储在 assets 文件夹中的 html 文件生成文本字符串。共享意图提取用于共享的原始 html 代码,而不是用户可以理解的纯文本。它暴露了我不喜欢的 html 内容。请帮助并告诉我在下面的代码中我一定做错了什么。我想分享用户不会理解的文本,而不是 html 文本。
我使用 Webview 从 assets 文件夹加载 html 文件。
这会读取我的 .html 文件并在该文件中提取准确的 html 文本
private String getTextFromAssets(String fileName){
try {
final int bufferSize = 1024;
final char[] buffer = new char[bufferSize];
InputStream inputStream = getResources().getAssets().open(fileName);
final StringBuilder out = new StringBuilder();
Reader in = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
int charsRead;
while((charsRead = in.read(buffer, 0, buffer.length)) > 0) {
out.append(buffer, 0, charsRead);
}
Log.d("HtmlText", out.toString());
return out.toString();
} catch (IOException e) {
Log.e("HtmlText", "HTML Read Error: "+e.toString());
}
return "";
}
这是我很容易地调用该方法以进行共享的地方
case R.id.share_button:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, getTextFromAssets("html_files/newhtml_b1.html"));
sendIntent.setType("text/plain");
Intent.createChooser(sendIntent, "Share via");
startActivity(sendIntent);
//share Copied Text characters via other apps button
}
解决方案
推荐阅读
- javascript - 创建后删除克隆元素的问题
- node.js - 用户验证失败:电子邮件:电子邮件无效,需要自定义错误
- c# - 访问列表
当 T 是内部类时 - jackson - 无法反序列化 java.time.Instant
- javascript - 如何将 Chart.js 插件数据标签与 ng2-chart 一起使用?
- dynamics-crm - 在 Dynamics CRM 中查询以查找相关帐户的订单产品
- http - 响应后的异步工作
- spring-mvc - spring mvc:当请求内容类型为 x-www-form-urlencoded 时绑定嵌套请求参数
- reactjs - 在静态网站上使用 ReactJS
- odoo-11 - odoo11 :: wkhtmltopdf 无法识别 css