【问题标题】:WebView not working网页视图不工作
【发布时间】:2012-09-02 13:11:22
【问题描述】:

我想禁用手机浏览器并且我想使用 webview。 但这段代码对我不起作用。请指导我:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Wop=(WebView)findViewById(R.id.webi);

        String mturl="http://www.google.com";
        Wop.getSettings().setJavaScriptEnabled(true);

        Wop.loadUrl(mturl);
        }

【问题讨论】:

  • 但是你的意思是“没用”吗?你收到一些错误信息吗?发布您的日志猫
  • 我的意思是这段代码在我的程序中不起作用
  • 首先遵循这个简单的例子:mkyong.com/android/android-webview-example 看看网络视图是如何工作的
  • 之后,如果想要您的自定义网页视图,您可以按照以下代码/答案进行操作。更具体地说,您必须覆盖自定义 Web 视图的此方法: shouldOverrideUrlLoading(WebView view, String url);{ view.loadUrl(url);返回真; }

标签: android url webview


【解决方案1】:
            mWebView = (WebView) findViewById(R.id.webview);
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.setWebViewClient(new HelloWebViewClient());
            mWebView.loadUrl("http://www.stackoverflow.com");

要加载上一个网页,

public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
            mWebView.goBack();
            return true;
        } }

HelloWebViewClient 类的定义:

private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);


            //what you want to do when the page finished loading, eg. give some message, show progress bar, etc
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);

            //what you want to do when the page starts loading, eg. give some message
        }


    }

【讨论】:

  • 当然:不要发布通用代码来回答不清楚的问题。而是要求澄清。这不是针对特定问题的答案,而是奖励不明确、低质量的问题。多亏了像这样的答案,他们不断被发布,因为人们没有理由为他们付出更多的努力。
  • 嘿!我只是想帮助那个家伙!因为我不知道他的确切问题是什么,所以我给出了所有可能的解决方案和定制。所以我因为帮助太多而被否决了?先生,这不是不公平吗?
  • 我很确定这些不是“所有可能的解决方案”。另外:这不是“帮助太多”。它的帮助越来越少。为什么?这个问题现在对所有找到它的搜索引擎用户来说都是无用的。如果您澄清了问题并具体回答,那么对更多人(可能有同样问题的人)会更有帮助。通用的 webview 代码没有帮助,您可以通过 google 找到数千个这样的示例。你所做的只是奖励 OP 的懒惰。所以,不,在我看来并不公平。
  • 哦,好的。我现在明白你的意思了。刚刚在 SO 上呆了几个月,仍然在这里学习一些东西。以后的问题会记住这一点。谢谢!
【解决方案2】:
WebView w = new WebView(this);

//将此添加到您的代码中

 w.setWebViewClient(new Callback());
 w.loadUrl("http://www.facebook.com");

//还有这个类

private class Callback extends WebViewClient{  //HERE IS THE MAIN CHANGE. 

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return (false);
            }

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多