WKWebView使用

一、js 調用oc方法java

  

- (void)viewDidLoad {web

    [super viewDidLoad];post

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

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

    configur.preferences = preferences;io

    preferences.javaScriptEnabled = YES;webkit

    

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

    [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)
相關文章
相關標籤/搜索