我想知道是否有人知道如何在启动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"));
}
}
答案 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();
}
}