加载在WebView中使用Javascript的HTML文件

问题描述:

我试图打开一个.html页面,该页面使用javascriptWebView中。 为了说明问题,我试图用1000°-ePaper打开演示电子书。加载在WebView中使用Javascript的HTML文件

我将演示文件夹复制到我的资产文件夹中,因此有一个名为“mobile.html”的文件。这个HTML文件使用了一些javascript和.css。它似乎首先尝试打开“mobile.html#/ page/0”。

当我加载WebView时,它说:“请激活Javascript”。

我的代码:

mWebView.getSettings().setJavaScriptEnabled(true); 
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

mWebView.loadUrl("file:///android_asset/Prospect/test/mobile.html"); 

所以它应该工作,对不对?令人困惑的是我可以加载的mobile.html,当我把所有的东西在线一个使用defaultBrowser。

+1

想知道是从WebView类的“请激活JavaScript”消息还是从HTML/JavaScript?我之前没有见过它,并且我已经使用过几次嵌入式HTML和JavaScript。一般来说,它只适用于WebView.getSettings()。setJavaScriptEnabled(true);所以我可以想象它只是在某个地方出错了。即使你没有使用它们,我认为它也有助于抛出客户端,例如WebView.setWebChromeClient(new WebChromeClient()); – 2011-12-19 10:25:02

+0

这是来自HTML/JavaScript的消息。好的,很高兴听到它应该是小事。 – 10ff 2011-12-19 10:28:08

我建议你将webviewClient和WebChromeClient关联到你的web视图。

+0

好的,我在本教程中喜欢它,但它没有帮助:http://www.giantflyingsaucer.com/blog/?p=1331 我认为,WebChromeClient只是帮助显示进度和Webviewclient覆盖默认的浏览器?还是我以错误的方式做到了? – 10ff 2011-12-19 10:12:35

+0

您对WebViewClient绝对正确,因为WebChromeClient负责处理Javascript消息和进程。 – Abhinava 2011-12-19 10:20:30

 public class ViewWeb extends Activity {   

      @Override   
      public void onCreate(Bundle savedInstanceState) {   

       super.onCreate(savedInstanceState);  
       setContentView(R.layout.webview);   
      WebView mWebView;    
      mWebView = (WebView) findViewById(R.id.webView1);   
      mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.getSettings().setSavePassword(false);  
     mWebView.getSettings().setSaveFormData(false); 
    mWebView.loadUrl("file:///android_asset/myfile.html");  
mWebView.setWebViewClient(new MyWebViewClient()); 


private class MyWebViewClient extends WebViewClient { 

    @Override  
//show the web page in webview but not in web browser 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {  
    view.loadUrl (url);  
    return true;  } } 



      mWebView.loadData("", "text/html", "utf-8"); 


       }  
      } 


} 
+0

我试过了,并在这里复制了HTML文件的文本:mWebView.loadData(“这里我复制了mobile.html的文本”,“text/html”,“utf-8”); 是你的想法吗?不幸的是,它只是显示明确的HTML文本,并忽略了链接在单独文件中的CSS/JavaScript代码,所以我没有嵌入代码 – 10ff 2011-12-19 10:56:06

+0

在您的情况下,“myfile.html”只是一个帮助文件来打开webClient? – 10ff 2011-12-19 11:54:41

+0

你有没有尝试把一些东西(JS,CSS)内联只是为了看看它是否工作?也许有一个链接问题? – 2011-12-19 12:22:18