platform/iphone/Classes/WebViewController.m in rhodes-1.5.2 vs platform/iphone/Classes/WebViewController.m in rhodes-1.5.3

- old
+ new

@@ -39,31 +39,40 @@ @interface UIBarButtonItemAction : NSObject { WebViewController *wc; NSString *url; + bool callback; } @property (nonatomic,copy) NSString *url; -- (id)init:(WebViewController*)w url:(NSString*)u; +- (id)init:(WebViewController*)w url:(NSString*)u callback:(bool)c; - (void)onAction:(id)sender; @end @implementation UIBarButtonItemAction @synthesize url; -- (id)init:(WebViewController *)w url:(NSString*)u { - self->wc = w; +- (id)init:(WebViewController *)w url:(NSString*)u callback:(bool)c { + wc = w; self.url = u; + callback = c; return self; } +- (void)doAction { + if (callback) + rho_net_request([url UTF8String]); + else + [wc navigate:url]; +} + - (void)onAction:(id)sender { - [wc navigate:url]; + [self performSelectorOnMainThread:@selector(doAction) withObject:nil waitUntilDone:NO]; } @end @@ -166,13 +175,18 @@ btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; } else { + bool callback = false; + if ([url length] > 9 && [[url substringToIndex:9] isEqual:@"callback:"]) { + callback = true; + url = [url substringFromIndex:9]; + } NSString *u = [NSString stringWithUTF8String:rho_http_normalizeurl([url UTF8String])]; - UIBarButtonItemAction *action = [[UIBarButtonItemAction alloc] init:self url:u]; - if (!img) { + UIBarButtonItemAction *action = [[UIBarButtonItemAction alloc] init:self url:u callback:callback]; + if (img) { btn = [[UIBarButtonItem alloc] initWithImage:img style:UIBarButtonItemStylePlain target:action action:@selector(onAction:)]; } else if ([label length] > 0) { @@ -272,10 +286,10 @@ CGRectGetWidth(mainFrame), CGRectGetHeight(mainFrame) - CGRectGetHeight(tbFrame)); webView = [[UIWebView alloc] initWithFrame:wvFrame]; webView.scalesPageToFit = YES; webView.userInteractionEnabled = YES; - webView.detectsPhoneNumbers = YES; + //webView.detectsPhoneNumbers = YES; webView.multipleTouchEnabled = YES; webView.autoresizesSubviews = YES; webView.delegate = self; [window addSubview:webView];