首页 > 解决方案 > 如何有意图地在资产文件夹中共享来自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


        }

标签: androidhtml

解决方案


推荐阅读