上に近いボタンでUIWeBViewをロードするにはどうすればよいですか?
-
28-09-2019 - |
質問
現在、別のビューからuiwebviewをロードする次のコードがあります。とにかく私は近いボタンを持っていることができますか?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIWebView *webView=[[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,480)];
[self.view addSubview:webView];
NSURLRequest *urlRequest;
NSURL *urlforWebView;
urlforWebView=[NSURL URLWithString:@"http://www.google.com"];
urlRequest=[NSURLRequest requestWithURL:urlforWebView];
[webView loadRequest:urlRequest];
}
jqueryモバイルを使用して構築されたページを読み込むため、ページ内の閉鎖ボタンも正常に動作します。しかし、ナビゲーションバーでは理想的です。ところで、私のアプリケーションはそうです いいえ uinavigationbarを持っています
解決
新しいサブクラスを作成します UIViewController
, 、 いう WebViewController
ペン先で。それから私は追加します UINavigationBar
ボタンを閉じると UIWebView
. 。次に、Webビューコントローラーを表示するには、次のようなことができます。
WebViewController *webViewController = [[WebViewController alloc] init];
webViewController.loadURL = [NSURL URLWithString:@"http://www.google.com"];
[self presentModalViewController:webViewController animated:YES];
[webViewController release];
あなたの中で WebViewController
あなたは定義することができます:
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) NSURL *loadURL;
- (IBAction)close:(id)sender;
そして、このようなものを実装してください:
- (void)viewDidLoad {
[super viewDidLoad]
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:self.loadURL];
[self.webView loadRequest:urlRequest];
}
- (IBAction)close:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}
他のヒント
UIWebViewをロードするたびに、最初にコンテンツでJavaScriptスニペットを実行できます。
[webView stringByEvaluatingJavaScriptFromString:@"window.close = function() { window.location = 'app://close-webview'; };"];
それは、通常の動作をハイジャックするだけです window.close()
そして、あなたの目標cで電話をかける機会を与えます。
次に、uiwebviewdelegateで、クローズURLとして選択したものを聞くことができます。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if([request.URL.absoluteString isEqualToString:@"app://close-webview"]) {
webView.hidden = YES;
// or whatever you want to do to remove the UIWebView...
return NO;
}
return YES;
}
少しハッキッシュですが、Web開発者はHTMLコンテンツ内からの近いボタンのルックアンドフィールを制御できるようになります。
所属していません StackOverflow