HTML5+Native 方式でアプリを開発する際、UIWebView の前進と後退機能を無効にする必要があります。以下の 3 つの方法を使用して実現することができます。3 つの方法を同時に使用することもできます。
- アプリ内で 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
- アプリ内で 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);"];
- HTML 内で JavaScript を使用して戻るを禁止する方法。HTML ページの後に以下のコードを追加することができます。