#import <WebKit/WebKit.h> //包含头文件
<WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler>//继承代理
_wkwebView = [[WKWebView alloc] initWithFrame:self.view.bounds];//self.view.bounds
// [_wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"jakilllog"];
NSString * string = [NSString stringWithFormat:@"function userFunc(){ return %@;}",@"{'sdf':'sdfsdf'}"];
NSString *javaScriptSource = string;
WKUserScript *userScript = [[WKUserScript alloc] initWithSource:javaScriptSource injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES];// forMainFrameOnly:NO(全局窗口),yes(只限主窗口)
[_wkwebView.configuration.userContentController addUserScript:userScript];//这种方法在js中就当已经实现了userFunc方法,直接调用就好
_wkwebView.navigationDelegate = self;
_wkwebView.UIDelegate = self;
NSString * urlStr = @"http://my.com/hh.html";
NSURL *url = [NSURL URLWithString:urlStr]; //测试本地H5
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:1];
[_wkwebView loadRequest:request ];
[self.view addSubview:_wkwebView];
js代码
function buttonClick()
{
// alert('js df OC' + data);
var message = { 'message' : 'Hello, World!', 'numbers' : [ 1, 2, 3 ] };
//这个对应ocz中 的实现
// [_wkwebView.configuration.userContentController addScriptMessageHandler:self name:@"jakilllog"];
//- (void)userContentController:(WKUserContentController *)userContentController
// didReceiveScriptMessage:(WKScriptMessage *)message
//{
// NSLog(@"Message: %@", message.body);//body为传过来的值
//}
window.webkit.messageHandlers.jakilllog.postMessage("jakilllog");
}
function buttonClickReturn()
{
// alert('js df OC' + data);
var user = userFunc();
alert(user['sdf']);
alert('sdf');
}
function but()
{
alert('test js OC');
}
网友评论