//// ExampleUIWebViewController.m// ExampleApp-iOS//// Created by Marcus Westin on 1/13/14.// Copyright (c) 2014 Marcus Westin. All rights reserved.//#import "ExampleUIWebViewController.h"#import "WebViewJavascriptBridge.h"@interface ExampleUIWebViewController ()@property WebViewJavascriptBridge* bridge;@end@implementation ExampleUIWebViewController- (void)viewWillAppear:(BOOL)animated {if (_bridge) { return; }UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.bounds];[self.view addSubview:webView];[WebViewJavascriptBridge enableLogging];_bridge = [WebViewJavascriptBridge bridgeForWebView:webView];[_bridge setWebViewDelegate:self];[_bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback) {NSLog(@"testObjcCallback called: %@", data);responseCallback(@"Response from testObjcCallback");}];[_bridge callHandler:@"testJavascriptHandler" data:@{ @"foo":@"before ready" }];[self renderButtons:webView];[self loadExamplePage:webView];}- (void)webViewDidStartLoad:(UIWebView *)webView {NSLog(@"webViewDidStartLoad");}- (void)webViewDidFinishLoad:(UIWebView *)webView {NSLog(@"webViewDidFinishLoad");}- (void)renderButtons:(UIWebView*)webView {UIFont* font = [UIFont fontWithName:@"HelveticaNeue" size:11.0];UIButton *callbackButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];[callbackButton setTitle:@"Call handler" forState:UIControlStateNormal];[callbackButton addTarget:self action:@selector(callHandler:) forControlEvents:UIControlEventTouchUpInside];[self.view insertSubview:callbackButton aboveSubview:webView];callbackButton.frame = CGRectMake(0, 400, 100, 35);callbackButton.titleLabel.font = font;UIButton* reloadButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];[reloadButton setTitle:@"Reload webview" forState:UIControlStateNormal];[reloadButton addTarget:webView action:@selector(reload) forControlEvents:UIControlEventTouchUpInside];[self.view insertSubview:reloadButton aboveSubview:webView];reloadButton.frame = CGRectMake(90, 400, 100, 35);reloadButton.titleLabel.font = font;UIButton* safetyTimeoutButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];[safetyTimeoutButton setTitle:@"Disable safety timeout" forState:UIControlStateNormal];[safetyTimeoutButton addTarget:self action:@selector(disableSafetyTimeout) forControlEvents:UIControlEventTouchUpInside];[self.view insertSubview:safetyTimeoutButton aboveSubview:webView];safetyTimeoutButton.frame = CGRectMake(190, 400, 120, 35);safetyTimeoutButton.titleLabel.font = font;}- (void)disableSafetyTimeout {[self.bridge disableJavscriptAlertBoxSafetyTimeout];}- (void)callHandler:(id)sender {id data = @{ @"greetingFromObjC": @"Hi there, JS!" };[_bridge callHandler:@"testJavascriptHandler" data:data responseCallback:^(id response) {NSLog(@"testJavascriptHandler responded: %@", response);}];}- (void)loadExamplePage:(UIWebView*)webView {NSString* htmlPath = [[NSBundle mainBundle] pathForResource:@"ExampleApp" ofType:@"html"];NSString* appHtml = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];NSURL *baseURL = [NSURL fileURLWithPath:htmlPath];[webView loadHTMLString:appHtml baseURL:baseURL];}@end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。