0

我确实使用 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(){})
4

1 回答 1

1

如果您index.html包含 JavaScript 代码,请尝试:

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
于 2013-05-03T16:26:26.367 回答