add .gitignore
This commit is contained in:
85
msext/Class/WebViewJavascriptBridge/ExampleWKWebViewController.m
Executable file
85
msext/Class/WebViewJavascriptBridge/ExampleWKWebViewController.m
Executable file
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// ExampleWKWebViewController.m
|
||||
// ExampleApp-iOS
|
||||
//
|
||||
// Created by Marcus Westin on 1/13/14.
|
||||
// Copyright (c) 2014 Marcus Westin. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ExampleWKWebViewController.h"
|
||||
#import "WebViewJavascriptBridge.h"
|
||||
|
||||
@interface ExampleWKWebViewController ()
|
||||
|
||||
@property WebViewJavascriptBridge* bridge;
|
||||
|
||||
@end
|
||||
|
||||
@implementation ExampleWKWebViewController
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
if (_bridge) { return; }
|
||||
|
||||
WKWebView* webView = [[NSClassFromString(@"WKWebView") alloc] initWithFrame:self.view.bounds];
|
||||
webView.navigationDelegate = self;
|
||||
[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)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation {
|
||||
NSLog(@"webViewDidStartLoad");
|
||||
}
|
||||
|
||||
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
|
||||
NSLog(@"webViewDidFinishLoad");
|
||||
}
|
||||
|
||||
- (void)renderButtons:(WKWebView*)webView {
|
||||
UIFont* font = [UIFont fontWithName:@"HelveticaNeue" size:12.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(10, 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(110, 400, 100, 35);
|
||||
reloadButton.titleLabel.font = font;
|
||||
}
|
||||
|
||||
- (void)callHandler:(id)sender {
|
||||
id data = @{ @"greetingFromObjC": @"Hi there, JS!" };
|
||||
[_bridge callHandler:@"testJavascriptHandler" data:data responseCallback:^(id response) {
|
||||
NSLog(@"testJavascriptHandler responded: %@", response);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)loadExamplePage:(WKWebView*)webView {
|
||||
NSString* htmlPath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
|
||||
NSString* appHtml = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
|
||||
NSURL *baseURL = [NSURL fileURLWithPath:htmlPath];
|
||||
[webView loadHTMLString:[NSString stringWithFormat:@"%@",appHtml] baseURL:baseURL];
|
||||
|
||||
// NSString *htmlPath=[FuncPublic getFilePath:[NSString stringWithFormat:@"%@/%@/index.html",[FuncPublic filename:@"gamedir"],[FuncPublic filename:@"gamestart"]] PathType:2];
|
||||
// NSString* appHtml = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
|
||||
// NSURL *baseURL =[NSURL fileURLWithPath:[FuncPublic getFilePath:[NSString stringWithFormat:@"%@/%@",[FuncPublic filename:@"gamedir"],[FuncPublic filename:@"gamestart"]] PathType:2]];
|
||||
// [webView loadHTMLString:[NSString stringWithFormat:@"%@",appHtml] baseURL:baseURL];
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user