ios知识整理:WKWebView,JavaScript向iOS传参

iOS代码.m

#import <WebKit/WebKit.h>
@interface XXXXXX ()<WKScriptMessageHandler>
{
    WKWebView *_webview;    
    LikeRoDislikeView *_likeOrDislikeView;
}
@property (strong, nonatomic) WKUserContentController *userContent;
@end

@implementation XXXXXX
-(instancetype)init
{
    self = [super init];
    if (self) {
        WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
        self.userContent = [[WKUserContentController alloc] init];
        [self.userContent addScriptMessageHandler:self  name:@"ocMethod"];
        config.userContentController = self.userContent;
       
        _webview = [[WKWebView alloc] initWithFrame:self.view.frame configuration:config];;
        _webview.frame = self.view.frame;
        _webview.scrollView.delegate = self;
        [self.view addSubview:_webview];

    }
    return self;
}


- (void)这个方法是我从自己的后台获取html的代码:(NSString *)urlString{
     //给自己的从后台获取的html代码创建样式...可以不管这一部分...关注里面的<script></script>部分就可以了.
     NSString *CSS= @"<style type=\"text/css\">img{margin: 10% 10%;}div{width:100%}h1{font-size:100px;color:#333333;}p{font-size:30px;color:#333333;margin:50px 50px;}</style>";
     NSString * htmlString = [NSString stringWithFormat:@"<html><meta charset=\"UTF-8\"><header>%@<script type=\"text/javascript\">function dismiss(){window.webkit.messageHandlers.ocMethod.postMessage(arguments[0]);}</script></header><body>%@</body></html>",CSS,urlString];
    
     //这个基础url是我本地缓存图片的位置.. 可以不管这个...
    // 获取当前应用的根目录
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
    NSURL *baseURL = [NSURL fileURLWithPath:path];
    //body是服务器返回的html格式的文章代码
    [_webview loadHTMLString:htmlString baseURL:baseURL];
}

-(void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
{
    NSString *messageName = message.name;
    if ([@"ocMethod" isEqualToString:messageName])
    {
        id messageBody = message.body;
        NSLog(@"%@",messageBody);
    }
}
@end

html代码

<img  onclick="dismiss('5a96bc40fe88c20038ba8e06')" src="article-snack-59f815908d6d810061e9d9d8-1.png"/>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,743评论 1 180
  • 又被刷屏了,关于陈姓导演疑似出轨之事。从林姓运动员,到赫姓演员刘姓演员至现在……相信无穷尽。 看来当公共人物的确有...
    hersey2017阅读 270评论 0 0
  • 一月份的优点就是做到不迟到,不早退,不请假 一月份的不足 首先可能工作上的积极性不够充足,导致工作的效率减少,对潜...
    大强ONE阅读 724评论 0 0