代码已经在所有其他网站上使用了.不确定这个问题是什么.我应该添加什么?适用于Chrome和其他浏览器,因此不知道该怎么做.任何帮助都会很棒!
的WebVIEw
铬
public class Website extends Activity { WebVIEw myWebVIEw; linearLayout root; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.website); myWebVIEw = (WebVIEw) findVIEwByID(R.ID.webVIEw); root = (linearLayout) findVIEwByID(R.ID.root); WebSettings webSettings = myWebVIEw.getSettings(); webSettings.setJavaScriptEnabled(true); myWebVIEw.addJavaScriptInterface(new WebAppInterface(this),"AndroID"); myWebVIEw.setWebVIEwClIEnt(new WebVIEwClIEnt()); myWebVIEw.getSettings().setBuiltInZoomControls(true); myWebVIEw.getSettings().setSupportZoom(true); myWebVIEw.getSettings().setCacheMode(WebSettings.LOAD_DEFAulT); myWebVIEw.getSettings().setDomStorageEnabled(true); myWebVIEw.loadUrl("http://dspart.org/"); getActionbar().setdisplayHomeAsUpEnabled(true); } public class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Show a toast from the web page */ @JavaScriptInterface public voID showToast(String toast) { Toast.makeText(mContext,toast,Toast.LENGTH_SHORT).show(); } private class MyWebVIEwClIEnt extends WebVIEwClIEnt { @OverrIDe public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw,String url) { if (Uri.parse(url).getHost().equals("http://dspart.org")) { // This is my web site,so do not overrIDe; let my WebVIEw // load the page return false; } // Otherwise,the link is not for a page on my site,so launch // another Activity that handles URLs Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); startActivity(intent); return true; } } } @OverrIDe public boolean onKeyDown(int keyCode,KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (myWebVIEw.canGoBack()) { myWebVIEw.goBack(); } else { root.removeVIEw(myWebVIEw); myWebVIEw.removeAllVIEws(); myWebVIEw.destroy(); this.finish(); } return true; } } return super.onKeyDown(keyCode,event); } @OverrIDe public boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemID()) { case androID.R.ID.home: NavUtils.navigateUpFromSaMetask(this); root.removeVIEw(myWebVIEw); myWebVIEw.removeAllVIEws(); myWebVIEw.destroy(); this.finish(); return true; default: return super.onoptionsItemSelected(item); } }}解决方法 一些建议:
在配置WebVIEw之后移动loadUrl()(我在注释中注意到了,但无论如何都应该在那里).
看起来您的页面中缺少样式.它们无法加载,或者以某种方式被WebVIEw禁用.尝试添加
.myWebVIEw.getSettings()setCacheMode(WebSettings.LOAD_DEFAulT);
和
myWebVIEw.getSettings()setDomStorageEnabled(真).
它看起来像WebVIEw缩小了:
尝试删除
.myWebVIEw.getSettings()setUseWIDeVIEwPort(真);
.myWebVIEw.getSettings()setLoaDWithOverviewmode(真);
而且,仅供参考,您实际上并没有使用MyWebVIEwClIEnt,而是依赖于默认的WebVIEwClIEnt.
总结以上是内存溢出为你收集整理的android – WebView无法正确显示全部内容,希望文章能够帮你解决android – WebView无法正确显示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)