' Create WKWebView1
WKWebView1 = CreateWKWebView(Page1.RootPanel)
WKWebView1.LoadUrl("file://" & File.Combine(File.DirLibrary, yourpath))
Sub CreateWKWebView (pnl As Panel) As View
Dim conf As NativeObject
conf = conf.Initialize("WKWebViewConfiguration").RunMethod("new", Null)
Dim NativeMe As NativeObject = Me
conf = NativeMe.RunMethod("getconfig:", Array(conf))
Dim wk As NativeObject
Dim p As NativeObject = pnl
wk = wk.Initialize("WKWebView").RunMethod("alloc", Null)
wk.RunMethod("initWithFrame:configuration:", Array(p.RunMethod("frame", Null), conf))
pnl.AddView(wk, 0, 0, pnl.Width, pnl.Height)
Return wk
End Sub
Private Sub JSCallback(body As Object)
Log(body)
End Sub
#If OBJC
#import <Foundation/Foundation.h>
- (WKWebViewConfiguration *) getconfig: ( WKWebViewConfiguration *)config
{
WKUserContentController* userController = [[WKUserContentController alloc]init];
[userController addScriptMessageHandler:self name:@"callback"];
config.userContentController = userController;
return config;
}
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
if ([message.name isEqualToString:@"callback"]) {
[self.bi raiseEvent:nil event:@"jscallback:"params:@[message.body]];
}
}
#End If