Android中的WebVIew和WebViewClient

3
我在我的应用程序中有一个 webView。当人们加载一个网址时,网页会在浏览器中加载,而不是在我的应用程序中,因为选项菜单是默认的而不是我分配的。我该怎么做才能阻止这种情况并使其在我的 webView 中加载,而不是在浏览器中加载?
我尝试使用webViewClient,但似乎没有起作用。
public class webView extends Activity {
    
    WebView myWebView;
    String url;
      
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        myWebView = (WebView) findViewById(R.id.webview);
        myWebView.getSettings().setJavaScriptEnabled(true);
        url = "http://d.android.com";
        myWebView.setWebViewClient(new WebViewClient()       
        {
             @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) 
            {
                
                //url="http://google.com";
                //view.loadUrl(url);
                System.out.println("hello");
                return true;
            }
        });
        //Toast.makeText(this, "", Toast.LENGTH_SHORT);
        myWebView.loadUrl(url);
    }
/** Creteing an options menu**/
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        
        MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.menu, menu);
          //return true;
        // TODO Auto-generated method stub
        return super.onCreateOptionsMenu(menu);
    }
2个回答

4
另外一个解决方案可能是:
myWebView.setWebViewClient(new WebViewClient());

默认情况下,系统将使用默认的 Web 浏览器打开并加载目标URL。如果要改变这种行为,可以调用以下方法:

webView.setWebViewClient(new WebViewClient());

4

如果您不想在浏览器中打开URL,则必须在 shouldOverrideUrlLoading 中返回 false


即使我声明了一个基本的WebView并加载google.com,它仍然使用浏览器加载。我该如何在我的WebView中加载它? - Droidme
你有没有使用真实的URL进行测试而没有重定向?(我认为你已经在清单中添加了正确的权限?) - Kwenk
现在它可以工作了。谢谢。我们是否应该为Webview拥有自己的地址栏?因为这就是我现在得到的。 - Droidme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接