【问题标题】:WebView Changes the Url AutomaticallyWebView 自动更改 URL
【发布时间】:2014-02-26 18:43:26
【问题描述】:

我是使用 Eclipse for android 开发应用程序的新手。我可以制作按钮和链接,但卡在几个地方,在这里需要帮助。

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

我正在通过单击按钮 在 web 视图中加载我的 Gmail 帐户。这些按钮是收件箱和垃圾箱之类的快捷方式。所以我应该可以通过单击收件箱按钮来检查邮件。

我面临的问题是:

  1. 当我第一次单击收件箱按钮时,它要求输入用户名和密码,但当我单击登录时 - 它会将 webview Url 更改为其他内容并以未找到结束!!或错误。我想阻止 Url 更改。

  2. Webview 打开我手机的新默认网络浏览器,地址栏位于顶部。 我想隐藏那个地址栏,不想使用默认浏览器打开页面。 它必须是一个平滑的事务,而不需要跳转到 URl 页面。

您好,谢谢您的回复,但我这里有一些错误,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;

【问题讨论】:

    标签: android eclipse url webview


    【解决方案1】:

    为您的 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());
    

    【讨论】:

    • 您好,感谢您的回复,但我这里的错误很少,
    • @user3357268 请在您的答案中发布错误日志。
    • 请不要以这种方式实现 shouldOverrideUrlLoading。如果你做这样的内容会破坏你的应用程序:jsbin.com/gupug/1/quiet
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多