WebView自动更改URL

时间:2014-02-26 18:43:26

标签: android eclipse url webview

我是Eclipse for App开发App的新手。我可以制作按钮和链接但是我被困在几个地方,并且需要帮助。

该应用程序有3个按钮和一个webview。

我是通过点击按钮在webview中加载我的Gmail帐户。这些按钮是收件箱和垃圾箱之类的快捷方式。所以我应该只需点击收件箱按钮即可查看邮件。

我面临的问题是:

  1. 当我第一次点击收件箱按钮时,它会询问用户名和密码,但是当我点击登录时 - 它会将webview Url更改为其他内容并以找不到的方式结束!或错误。我想阻止Url更改。

  2. Webview打开手机的新默认网页浏览器,顶部有地址栏。 我想隐藏该地址栏,不想使用默认浏览器打开页面。 它必须是一个smoth事务,没有jumoing到URl页面。

  3. 嗨感谢您的回复,但我这里的错误很少,1)由于我使用三个按钮,激活webview我已经使用了切换视图,因此我无法定义以上是示例代码:

    cancelbutton.setOnClickListener(new View.OnClickListener()     {
    
    
    private Activity result;
    
                @SuppressWarnings("deprecation")
    
                public void onClick(View v)   
    {
                    { switch (v.getId()) 
    {
                    case R.id.can_button3:  
                    Intent myintent1 = new Intent
    
    
    (Launcher.this,cancelbutton.class); Toast.makeText(Launcher.this, "Cancellation ",
    
        Toast.LENGTH_SHORT).show();
    
        setContentView(R.layout.activity_main);
    
             WebView = (WebView) findViewById(R.id.webView1);
    
        WebView.getSettings().setJavaScriptEnabled(true);
    
        WebView.getSettings().setSavePassword(true); 
    
        WebView.loadUrl("https://gmail.com/inbox");break;
    } 
    } } 
    }
    );
    
     junkBox.setOnClickListener(new View.OnClickListener() //Next Button{private Activity 
    
    
    
    result;
    

1 个答案:

答案 0 :(得分:0)

为WebView创建CustomWebViewClient。覆盖以下两个功能: shouldOverrideUrlLoading - 在WebView中显示页面 onReceivedSslError - 忽略SSL错误。

代码如下所示:

public class CustomWebViewClient extends WebViewClient {

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

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        handler.proceed(); // Ignore SSL certificate errors
    }

}

将此WebViewClient添加到WebView:

WebView webView = (WebView) result.findViewById(R.id.web_view);
        webView.setWebViewClient(new CustomWebViewClient());