我有一个像这样的html文件:
<body>
<h2>My html</h2>
<p> You could save @value per year.</p>
</body>
我在Android中使用WebView加载此页面
我得到了一个需要用@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”
答案 0 :(得分:1)
是
首先从assets / raw读取HTML到String。然后使用字符串的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", "");
答案 1 :(得分:0)
您好您可以使用Android JavaScript Bridge技术。请看下面的步骤。
步骤1.默认情况下,为了在Web视图中启用Java脚本,将禁用JavaScript。您可以通过附加到webview的WebSettings启用,然后使用setJavaScriptEnabled()
例如
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
步骤2.将java脚本代码构建为android代码
要绑定javascript和android代码,它调用addJavascriptInterface()。传递一个类实例以绑定到您的JavaScript和一个JavaScript可以调用以访问该类的接口名称。 例如,您可以在Android应用程序中包含以下类:
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()将此类绑定到在WebView中运行的JavaScript,并将界面命名为Android。例如:
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
这将在WebView中创建一个名为Android for JavaScript的界面。此时,您的Web应用程序可以访问WebAppInterface类。例如,这里有一些HTML和JavaScript在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>
如果您有任何疑问,请告诉我,谢谢。