banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[iOS]禁止UIWebView前进和后退

在使用 HTML5+Native 方式开发 APP 时,需要禁用 UIWebView 的前进和后退功能,可以使用以下三种方式实现,也可以同时使用三种方法。

  1. 在 APP 内使用 native 代码修改 UIWebView 的功能以禁止前进和后退。可以直接覆盖 UIWebView 的返回判断功能,也可以在此处禁止前进。
@interface UIWebView(no_back_forward)
- (BOOL) canGoBack;
- (BOOL) canGoForward;
@end

@implementation UIWebView(no_back_forward)
- (BOOL) canGoBack
{ 
    return NO;
}
- (BOOL) canGoForward
{
    return NO;
}
@end
  1. 在 APP 内使用 native 代码实现 UIWebView 的 Delegate 方法以禁止前进和后退。在 UIWebView 的 webViewDidFinishLoad: 方法中添加以下代码,这里需要用到 stringByEvaluatingJavaScriptFromString 方法。
//禁止后退
[webView stringByEvaluatingJavaScriptFromString:@"window.history.forward(1);"];
//禁止返回
[webView stringByEvaluatingJavaScriptFromString:@"window.location.replace(window.href);"];
//禁止前进后退
[webView stringByEvaluatingJavaScriptFromString:@"window.history.go(1);"];
  1. 在 HTML 内使用 JavaScript 禁止前进和后退。可以在 HTML 页面后增加以下代码。
<script language="JavaScript">
//禁止后退
window.history.forward(1);
//禁止返回
window.location.replace(window.href);
//禁止前进后退
window.history.go(1);
</script>
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。