Android 将文本放入 html

Android put text in html

我得到了一个这样的 html 文件:

<body>
    <h2>My html</h2>

    <p> You could save @value per year.</p>

</body>

我使用 WebView

在 android 中加载此页面

我有一个存储值,需要用 @value 替换,这可能吗?

在我需要使用它的地方更新 PagerAdapterClass :

 @Override
    public Object instantiateItem(ViewGroup container, final int position) {

        WebView Content;
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.view_pager_item, container,
                false);
       Content= (WebView) itemView.findViewById(R.id.iaps_url);
     Content.loadUrl(myUrl.get(position));
        ((ViewPager) container).addView(itemView);

        return itemView;
    }

myUrl.get(position)表示文件位置,如"file:///android_asset/ScreenOne.html"

是的。

首先将 HTML 从 assets/raw 读取为一个字符串。然后使用字符串的replaceAll函数。

InputStream is = getAssets().open("webpage.html");
int size = is.available();

byte[] buffer = new byte[size];
is.read(buffer);
is.close();

String page = new String(buffer);
page = page.replace("@value", "new string");

WebView webview = (WebView)this.findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadDataWithBaseURL("", page, "text/html", "UTF-8", "");

您好 您可以使用 Android JavaScript Bridge 技术。看下面的步骤。

步骤 1. 为了在 Web 视图中启用 Java 脚本,默认情况下 Java 脚本被禁用。您可以通过附加到您的网络视图的 WebSettings 启用,然后使用 setJavaScriptEnabled()

启用 java 脚本

例如

WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

步骤 2. 将 java 脚本代码构建为 android 代码

要绑定 java 脚本和 android 代码,它会调用 addJavascriptInterface()。向它传递一个 class 实例以绑定到您的 Java脚本和您的 Java脚本可以调用以访问 class 的接口名称。 例如,您可以在 Android 应用程序中包含以下 class:

public class WebAppInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** call the stored value from java to javascript */
    @JavascriptInterface
    public integer getStoreValue() {
        return 1;
    }
}

您可以使用 addJavascriptInterface() 将此 class 绑定到在 WebView 中运行的 JavaScript 并将接口命名为 Android。例如:

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

这会在 WebView 中为 JavaScript 运行 创建一个名为 Android 的界面。此时,您的 Web 应用程序可以访问 WebAppInterface class。例如,这里有一些 HTML 和 Java 脚本,它们在 html widnow 加载时使用新接口调用 java 存储值:@see this link

<html>
<script type="text/javascript">
    function getStoredValue() {
     var output = document.getElementById('values');
    output.innerHTML = Android.getStoreValue();

}
</script>
<body onload="getStoredValue()">
    <h2>My html</h2>

    <p> You could save <a id= 'values'>

        </a>  per year.</p>

</body>

</html>

如有任何疑问,请告诉我,谢谢。