wkwebview简单应用

2017-07-05  本文已影响9人  40dd4b561abe

#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');

}
上一篇 下一篇

猜你喜欢

热点阅读