如何通过单击alertView上的按钮打开webView(在主项目中)(在依赖项目(Zxing)中)

时间:2012-02-23 14:40:00

标签: ios zxing

我是ios开发中的真正菜鸟。现在我正在使用Zxing开展我的学习项目。

我创建了自己的项目,其中包括依赖第三方库(Zxing)。 一旦我扫描包含内部URL的QRCode,我的项目将调用Zxing库中的一个类,然后提醒alertView。 之后,一旦我点击弹出alertView上的打开按钮,它将通过激活Safari打开该URL。

Zxing的代码如下:

//============================================================

- (void)openURL {

    [[UIApplication sharedApplication] openURL:self.URL]; //<===== open URL by    Safari browser.
    }


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
  if (buttonIndex != [alertView cancelButtonIndex]) {
    // perform the action

    [self openURL];
  }
}
//========================================================

但是,我希望我能在我自己的webView中打开该URL,这个URL由Interface Builder在我的“自己的项目”中构建,而不是由Safari构建。你有什么建议吗?我必须编写什么(void)openURL {}?我坚持了3天这个问题,现在我似乎疯了[ p ]

非常感谢你的帮助。

干杯,

1 个答案:

答案 0 :(得分:0)

我做的是做一个新的视图控制器,里面有webView。在OpenURL方法启动时设置的属性URLtring。如果需要,您必须实现webView的委托方法。我正在使用的代码是

WebViewCOntroller.h中的

@interface WebViewController : UIViewController <UIWebViewDelegate>{


IBOutlet UIWebView *webView;
UIView *activityView;
}
@property (nonatomic, retain) NSString *buyProductLink;
@end
WebViewController.m中的

- (void)viewDidLoad {
[super viewDidLoad];
webView.scalesPageToFit = YES;

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:self.buyProductLink]];
[webView loadRequest:request];
[request release];
}
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

return YES;
}
- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

        [activityView removeFromSuperview];
} 

- (void) webViewDidFinishLoad:(UIWebView *)webView {

        [activityView removeFromSuperview];
        [activityView release]; activityView = nil;
}

在openURL方法中使用

WebViewController *webViewVC = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
webViewVC.buyProductLink = [NSString stringWithFormat:@"%@",result];
[self.navigationController pushViewController:webViewVC animated:YES];