Как открыть webView (в главном проекте), нажав кнопку на alertView (в проекте зависимостей (Zxing)) - PullRequest
0 голосов
/ 23 февраля 2012

Я настоящий нуб в ios dev.Сейчас я работаю над своим учебным проектом с использованием Zxing.

Я делаю свой собственный проект, который включает сторонние библиотеки зависимостей (Zxing).После того, как я отсканирую QRCode, содержащий URL-адрес внутри, мой проект вызовет класс в библиотеке Zxing, а затем выдаст предупреждение alertView.После этого, как только я нажму кнопку «Открыть» во всплывающем окне alertView, он откроет этот URL, активировав Safari.

код в 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];
  }
}
//========================================================

Однако мое желаниеЯ хотел бы открыть этот URL в моем собственном webView, который создан Interface Builder в моем «собственном проекте», а не Safari.У вас есть какие-нибудь предложения?Что я должен кодировать в (void) openURL {}?Я застрял с этой проблемой в течение 3 дней, и теперь я, кажется, схожу с ума [ p ]

Большое спасибо за вашу помощь заранее.

Приветствия,

1 Ответ

0 голосов
/ 23 февраля 2012

Что я сделал для этого, так это то, что я сделал новый контроллер представления, в котором есть webView.URL-строка свойства, которая устанавливается при запуске метода OpenURL.Вы должны реализовать методы делегирования 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...