gk1*_*gk1 4 iphone uiwebview uinavigationcontroller jquery-mobile
我目前有以下代码从另一个视图加载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];
}
Run Code Online (Sandbox Code Playgroud)
我将加载使用jquery mobile构建的页面,因此页面内的关闭按钮也可以正常工作.但在导航栏上是理想的.顺便说一句,我的应用程序不具有UINavigationBar的
Rob*_*und 11
我将创建一个新的子类的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];
Run Code Online (Sandbox Code Playgroud)
在你的WebViewController你可以定义:
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) NSURL *loadURL;
- (IBAction)close:(id)sender;
Run Code Online (Sandbox Code Playgroud)
并实现这样的事情:
- (void)viewDidLoad {
[super viewDidLoad]
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:self.loadURL];
[self.webView loadRequest:urlRequest];
}
- (IBAction)close:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
小智 5
每当您加载UIWebView时,您都可以先在内容上运行javascript片段.
[webView stringByEvaluatingJavaScriptFromString:@"window.close = function() { window.location = 'app://close-webview'; };"];
Run Code Online (Sandbox Code Playgroud)
这只是劫持了正常的行为,window.close()让你有机会在你的Objective-C中接听电话.
然后在您的UIWebViewDelegate中,您可以监听您选择的任何关闭网址.
- (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;
}
Run Code Online (Sandbox Code Playgroud)
有点hackish,但它允许Web开发人员从HTML内容中控制关闭按钮的外观.
| 归档时间: |
|
| 查看次数: |
8275 次 |
| 最近记录: |