WebView不会将控制权返回给应用程序

时间:2011-01-14 22:40:01

标签: android webview

我想知道是否有人知道如何在启动webview后将控制权返回给应用程序?我从android开发者页面获得了webview的示例代码,但是在退出webview之后我无法找到将控制权返回给应用程序的方法。任何帮助,将不胜感激。

public class LaunchWeb extends Activity{
 WebView webView; 
  public void onCreate(Bundle savedInstanceType)
  { 
   super.onCreate(savedInstanceType); 
   setContentView(R.layout.webview_layout); 
   webView = (WebView) findViewById(R.id.webview);
   //webView.setWebViewClient(new WebViewClient());    
   webView.getSettings().setJavaScriptEnabled(true);
   webView.loadUrl(getIntent().getExtras().getString("url")); 
  } 
}

2 个答案:

答案 0 :(得分:2)

您的问题是,您很可能不会看WebView

运行您的应用。当您到达您认为正在WebView中查看的页面时,请单击“菜单”按钮。您可能会看到浏览器应用程序的选项菜单出现。那是因为你在浏览器应用程序中,而不是你的应用程序。

默认情况下,

WebView会将链接上的所有点击以及所有重定向发布到用户选择的浏览器中。您可能会被重定向方案捕获 - 您提供给loadUrl()的URL触发了服务器上的重定向,并且重定向的URL由浏览器加载,而不是WebView

您需要将WebViewClient对象附加到WebView,并在shouldOverrideUrlLoading()中实施WebViewClient,以指示应将哪些链接/重定向加载到WebView中{1}}应该在用户选择的浏览器中加载。

答案 1 :(得分:1)

根据评论,您感觉自己拥有浏览历史记录。

如果您使用webview构建了一个活动,则应该尝试清除historyStack,这样当您按下它时它将返回。

您甚至可以在WebViewClient中进行设置。在每个页面上加载您清除历史记录。

    WebView webview = new WebView(mContext);
    webview.setWebViewClient(new AuthClient());

    private class AuthClient extends WebViewClient {
            @Override
            public void onPageFinished(WebView v, String url) {
                v.clearHistory();
            }
     }