OC与JS交互之WKWebView
来源:互联网 发布:域名购买是永久的吗 编辑:程序博客网 时间:2024/05/22 03:40
OC:
#import "ViewController.h"#import <WebKit/WebKit.h>#import "TwoViewController.h"@interface ViewController ()<UIWebViewDelegate,WKScriptMessageHandler>{ WKWebView *webView;}@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc]init]; config.preferences.minimumFontSize = 18; webView = [[WKWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height/2) configuration:config]; webView.backgroundColor = [UIColor redColor]; webView.userInteractionEnabled = YES; [self.view addSubview:webView]; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"JKLTEXT" ofType:@"html"]; NSURL *baseURL = [[NSBundle mainBundle] bundleURL]; [webView loadHTMLString:[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil] baseURL:baseURL]; WKUserContentController *userC = config.userContentController; //JS调用OC 添加处理脚本 [userC addScriptMessageHandler:self name:@"showName"]; UIButton *mobileButton = [UIButton buttonWithType:UIButtonTypeCustom]; mobileButton.frame = CGRectMake(10, 500, 60, 40); [mobileButton setTitle:@"mobile" forState:UIControlStateNormal]; [mobileButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; [mobileButton addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:mobileButton];}-(void)btnClick{ if (!webView.loading) { [webView evaluateJavaScript:@"alertName('来自OC')" completionHandler:nil]; }}//网页加载完成之后调用JS代码才会执行,因为这个时候html页面已经注入到webView中并且可以响应到对应方法- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message { if ([message.name isEqualToString:@"showName"]) { NSLog(@"message:%@",message.body); }}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
html:
function alertName(Msg) { document.getElementById('name').innerHTML = Msg}function btn1() { window.webkit.messageHandlers.showName.postMessage('我来自JS')}
0 0
- OC与JS交互之WKWebView
- OC与JS交互之WKWebView
- OC与JS交互之WKWebView
- OC与JS交互之WKWebView
- oc与js交互-----WKWebView
- WKWebView OC与js的交互
- OC 与 JS 交互 (UIWebView & WKWebView)
- iOS开发中OC与H5网页交互之OC传值给JS(WKWebView)
- iOS OC与H5网页交互之OC传值给JS(WKWebView)
- WKWebView OC和JS交互
- WKWebView与js交互之完美解决方案
- WKWebView与js交互
- WKWebView与JS交互
- WKWebView与JS交互
- WKWebView与js交互
- WKWebView与JS交互
- WKWebView与js交互
- WKWebView 与 JS 交互
- Opencv2.4.9 vs2013永久配置 绝对路径
- 安装及运行openface的大坑
- Gogland IDE Run/Debug Configurations 配置说明
- 页面加载顺序问题,影响视觉效果,使用loading解决。
- 进制转换
- OC与JS交互之WKWebView
- Glide、Picasso和Fresco
- 让textarea的高度自适应
- Linux系统学习笔记:套接字
- $.ajax 发送数据到springmvc...正在重新整理中
- CreateProcess function
- html中meta标签的使用
- Sublime Text3 插件
- Android 自定义带动画效果的开关按钮