@@ -16,6 +16,7 @@ @implementation AppDelegate {
1616 WKWebView *_WKWebView;
1717 WebViewJavascriptBridge* _bridge;
1818 WKWebViewJavascriptBridge* _WKBridge;
19+ NSView * _WKWebViewWrapper;
1920}
2021
2122- (void )applicationDidFinishLaunching : (NSNotification *)aNotification
@@ -58,6 +59,13 @@ - (void)_configureWebview {
5859 [callbackButton setAction: @selector (_callHandler )];
5960 [_webView addSubview: callbackButton];
6061
62+ NSButton *webViewToggleButton = [[NSButton alloc ] initWithFrame: NSMakeRect (235 , 0 , 180 , 40 )];
63+ [webViewToggleButton setTitle: @" Switch to WKWebView" ];
64+ [webViewToggleButton setBezelStyle: NSRoundedBezelStyle ];
65+ [webViewToggleButton setTarget: self ];
66+ [webViewToggleButton setAction: @selector (_toggleExample )];
67+ [_webView addSubview: webViewToggleButton];
68+
6169
6270 // Load Page
6371 NSString * htmlPath = [[NSBundle mainBundle ] pathForResource: @" ExampleApp" ofType: @" html" ];
@@ -67,12 +75,6 @@ - (void)_configureWebview {
6775
6876
6977- (void )_configureWKWebview {
70-
71- // Load Page
72- NSString * htmlPath = [[NSBundle mainBundle ] pathForResource: @" ExampleApp" ofType: @" html" ];
73- NSString * html = [NSString stringWithContentsOfFile: htmlPath encoding: NSUTF8StringEncoding error: nil ];
74- [_WKWebView loadHTMLString: html baseURL: nil ];
75-
7678 // Create Bridge
7779 _WKBridge = [WKWebViewJavascriptBridge bridgeForWebView: _WKWebView handler: ^(id data, WVJBResponseCallback responseCallback) {
7880 NSLog (@" ObjC received message from JS: %@ " , data);
@@ -104,6 +106,23 @@ - (void)_configureWKWebview {
104106 [callbackButton setTarget: self ];
105107 [callbackButton setAction: @selector (_WKCallHandler )];
106108 [_WKWebView addSubview: callbackButton];
109+
110+ NSButton *webViewToggleButton = [[NSButton alloc ] initWithFrame: NSMakeRect (235 , 0 , 180 , 40 )];
111+ [webViewToggleButton setTitle: @" Switch to WebView" ];
112+ [webViewToggleButton setBezelStyle: NSRoundedBezelStyle ];
113+ [webViewToggleButton setTarget: self ];
114+ [webViewToggleButton setAction: @selector (_toggleExample )];
115+ [_WKWebView addSubview: webViewToggleButton];
116+
117+ // Load Page
118+ NSString * htmlPath = [[NSBundle mainBundle ] pathForResource: @" ExampleApp" ofType: @" html" ];
119+ NSString * html = [NSString stringWithContentsOfFile: htmlPath encoding: NSUTF8StringEncoding error: nil ];
120+ [_WKWebView loadHTMLString: html baseURL: nil ];
121+ }
122+
123+ -(void )_toggleExample {
124+ _WKWebView.hidden = !_WKWebView.isHidden ;
125+ _webView.hidden = !_webView.isHidden ;
107126}
108127
109128- (void )_sendMessage {
@@ -137,29 +156,14 @@ - (void)_createViews {
137156 // WebView
138157 _webView = [[WebView alloc ] initWithFrame: contentView.frame];
139158 [_webView setAutoresizingMask: (NSViewHeightSizable | NSViewWidthSizable)];
159+ _webView.hidden = YES ;
140160
141161 // WKWebView
142162 _WKWebView = [[WKWebView alloc ] initWithFrame: contentView.frame];
143163 [_WKWebView setAutoresizingMask: (NSViewHeightSizable | NSViewWidthSizable)];
144164
145- // Tabs
146- NSTabView *tabView = [[NSTabView alloc ]
147- initWithFrame: contentView.frame];
148- [contentView addSubview: tabView];
149-
150- NSTabViewItem *tab1 = [[NSTabViewItem alloc ]
151- initWithIdentifier: @" tab1" ];
152- [tab1 setLabel: @" WebView" ];
153- [tabView addTabViewItem: tab1];
154-
155- NSTabViewItem *tab2 = [[NSTabViewItem alloc ]
156- initWithIdentifier: @" tab2" ];
157- [tab2 setLabel: @" WKWebView" ];
158- [tabView addTabViewItem: tab2];
159-
160- // Initialize each tab
161- [tab1 setView: _webView];
162- [tab2 setView: _WKWebView];
165+ [contentView addSubview: _WKWebView];
166+ [contentView addSubview: _webView];
163167}
164168
165169
0 commit comments