iPhone アプリ (iPad ではない) を作成し、Web ビュー コントローラー内で Web ページを実行しています。私の質問は、PHP ファイルがこのアプリの UIWebView コントローラーではなく Safari 内から実行されていることをどのように検出できるかということです。このアプリ内で実行する場合、Safari モバイル Web ブラウザーとは異なる反応 (つまり、html メニューを取り除く) の PHP ページが必要です。これは可能ですか?
WebView コントローラー
#import "AccountViewController.h"
@interface AccountViewController ()
@end
@implementation AccountViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidLoad];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"account" ofType:@"html"]isDirectory:NO];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_AccountWebView loadRequest:requestObj];
}
-(void)webViewDidFinishLoad:(UIWebView *)webView {
NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:[NSURL URLWithString:@"http://www.uniitee.com"]];
NSEnumerator *enumerator = [cookies objectEnumerator];
NSHTTPCookie *cookie;
while (cookie = [enumerator nextObject]) {
NSLog(@"COOKIE{name: %@, value: %@}", [cookie name], [cookie value]);
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
PHPファイル
<?php require_once('Connections/Uniitee.php');
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
if ($iphone || $android || $palmpre || $ipod || $berry == true)
{
header('Location: login-m.php');
}
?>