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>
如有任何疑问,请告诉我,谢谢。
我得到了一个这样的 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()
例如
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>
如有任何疑问,请告诉我,谢谢。