【问题标题】:Checking web/mobile access when shouldOverrideUrlLoading fires在 shouldOverrideUrlLoading 触发时检查 Web/移动访问
【发布时间】:2012-10-10 15:17:02
【问题描述】:

有没有办法我可以在 shouldOverrideUrlLoading() 中放置一个 if 语句来检查网络/移动访问。然后显示一条错误消息,而不是移动 chrome 显示的讨厌的页面未找到页面。

类似的东西

    public boolean shouldOverrideUrlLoading(WebView view, String url) 
 {        
    if(isOnline() == false)  
        {
         AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);
         dlgAlert.setMessage("Mobile device currnetly has no internet access.  Please try again.");
         dlgAlert.setTitle("No Connection");
         dlgAlert.setPositiveButton("OK", null);
         dlgAlert.setCancelable(true); 
         dlgAlert.setIcon(R.drawable.ic_launcher);
         dlgAlert.create().show(); 
        }

        return false;          
 }

【问题讨论】:

  • 应该可以工作 - 假设您有一个名为 isOnline 的方法来检查网络状态。只需在 if 语句中返回 true

标签: android url webview overriding


【解决方案1】:

好的,我找到了解决问题的方法。首先,我将 shouldOverrideUrlLoading() 放在新的 WevViewclient 中。在我把它放在那个街区之外之前。

接下来我收到一条错误消息

 AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);

接下来我将代码更改为这个,使用 Toast 消息而不是 AlertDialog Builder。

@覆盖 public boolean shouldOverrideUrlLoading(WebView view, String url) {

             if (isOnline() == false)
             {
                 Toast msg = Toast.makeText(MainActivity.this,"No mobile or web access, try again later.",Toast.LENGTH_LONG);
                 msg.show();
                 return true;
             }
             else
             { 
                 return false;
            }
         }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    相关资源
    最近更新 更多