我确实使用 WebView 尝试了来自 Google 代码和其他资源的示例、演示,但是当我尝试在我自己的代码中执行此操作时,它对我不起作用。
我想加载我放在 assets 文件夹中的 index.html,并使用:
public class MainActivity extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//define webview
webView = (WebView)findViewById(R.id.webView);
webView.setHorizontalScrollBarEnabled(false);
webView.loadUrl("file:///android_asset/www/index.html");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
在模拟器上,我看不到我的文件仍然是白色背景,也没有打开我的 index.html。
笔记:-
我的 index.html 包含 JavaScript,而不是通过 ajax 从网站在线获取数据。
有没有办法在适用于所有 API 版本的应用程序包中加载现有的 .html 文件?
预先感谢您的帮助!
编辑 :-
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
MainActivity.this.setProgress(progress * 1000);
}
});
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(MainActivity.this, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
});
webView.loadUrl("file:///android_asset/www/index.html");
}
我会尝试这段代码,但我有错误:-
Multiple markers at this line
- WebViewClient cannot be resolved to a type
- The method setWebViewClient(WebViewClient) in the type WebView is not applicable for the arguments (new
WebViewClient(){})