WKWebView使用

Posted 670074760-zsx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WKWebView使用相关的知识,希望对你有一定的参考价值。

1、js 调用oc方法

  

- (void)viewDidLoad {

    [super viewDidLoad];

    WKWebViewConfiguration *configur = [[WKWebViewConfiguration alloc] init];

    WKPreferences *preferences = [[WKPreferences alloc] init];

    configur.preferences = preferences;

    preferences.javascriptEnabled = YES;

    

    self.userContentController = [[WKUserContentController alloc]init];

    [self.userContentController addScriptMessageHandler:self name:@"goBack"];

    configur.userContentController = self.userContentController;

    

    self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight-NaviHeight-44) configuration:configur];

    

    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.10.60/"]]];

    

    self.webView.UIDelegate = self;

    self.webView.navigationDelegate = self;

    

    [self.view addSubview:self.webView];

    

}

//WKScriptMessageHandler协议方法

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {

    if ([message.name isEqualToString:@"goBack"]) {

        //做处理 do something

        //message.body 为此 ScriptMessage 传递的消息内容

        NSLog(@"goBack");

    }

}

主要点:

  • 如果message.body中无参数,JS代码中需要传个null,不然ios端不会接受到JS交互,window.webkit.messageHandlers.kJS_Login.postMessage(null)

以上是关于WKWebView使用的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView:表单未在 WKWebView (Swift) 中提交

iOS wkwebview怎么写localStorage

Cordova 是不是支持 WKWebView?

如何使用 WKWebview 检查链接是不是损坏?

使用 Swift 4 滚动 WKWebview

WKWebView 可水平滚动