ios知識(shí)整理: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)這個(gè)方法是我從自己的后臺(tái)獲取html的代碼:(NSString *)urlString{
     //給自己的從后臺(tái)獲取的html代碼創(chuàng)建樣式...可以不管這一部分...關(guān)注里面的<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];
    
     //這個(gè)基礎(chǔ)url是我本地緩存圖片的位置.. 可以不管這個(gè)...
    // 獲取當(dāng)前應(yīng)用的根目錄
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
    NSURL *baseURL = [NSURL fileURLWithPath:path];
    //body是服務(wù)器返回的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"/>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用到的組件 1、通過(guò)CocoaPods安裝 2、第三方類庫(kù)安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,203評(píng)論 1 180
  • 又被刷屏了,關(guān)于陳姓導(dǎo)演疑似出軌之事。從林姓運(yùn)動(dòng)員,到赫姓演員劉姓演員至現(xiàn)在……相信無(wú)窮盡。 看來(lái)當(dāng)公共人物的確有...
    hersey2017閱讀 318評(píng)論 0 0
  • 一月份的優(yōu)點(diǎn)就是做到不遲到,不早退,不請(qǐng)假 一月份的不足 首先可能工作上的積極性不夠充足,導(dǎo)致工作的效率減少,對(duì)潛...
    大強(qiáng)ONE閱讀 732評(píng)論 0 0

友情鏈接更多精彩內(nèi)容