上篇文章講過,oc和js交互,oc調(diào)用js關(guān)鍵的方法是
- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
當(dāng)我們執(zhí)行stringByEvaluatingJavaScriptFromString這個方法的時候,系統(tǒng)會識別js,幫我們運行js代碼。上代碼:
//創(chuàng)建webView
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 400)];
webView.delegate = self;
webView.scrollView.delegate = self;
[self.view addSubview:webView];
self.webView = webView;
//html
NSString *htmlStr = @"<body style=\"border: 2px solid\"><br><p style=\"border: 2px solid mediumaquamarine\">這是第一段文字</p><p style=\"border:5px solid lightpink\">這是第二段文字</p><p style=\"border:8px solid lime\">這是第三段文字</p></body>";
//加載HTML
[webView loadHTMLString:htmlStr baseURL:nil];
按鈕的點擊事件
1)oc調(diào)用js 改變p標(biāo)簽的背景顏色
- (IBAction)clickFirst:(id)sender{
[self.webView stringByEvaluatingJavaScriptFromString:@"var p = document.getElementsByTagName('p'); p[0].style.backgroundColor='red';"];
}
2)oc調(diào)用js 文本居中顯示
- (IBAction)clickSecond:(id)sender{
[self.webView stringByEvaluatingJavaScriptFromString:@"var p = document.getElementsByTagName('p'); p[1].style.textAlign='center';p[1].style.color='red'"];
}
3)oc調(diào)用js 改變文本內(nèi)容
- (IBAction)clickThird:(id)sender{
[self.webView stringByEvaluatingJavaScriptFromString:@"var p = document.getElementsByTagName('p'); p[2].innerText='你沒與如期而來,這就是離別的意義';"];
}
4)還原
- (IBAction)clickfourth:(id)sender{
[self.webView stringByEvaluatingJavaScriptFromString:@"var p = document.getElementsByTagName('p');p[2].innerText='這是第三段文字'; for (var i=0;i<p.length;i++){p[i].style.textAlign='';p[i].style.backgroundColor='';p[i].style.color='black';};"];
}
示例gif

OcCallJs.gif
github demo地址:https://github.com/shimminZ/oc-called-js
歡迎star 謝謝哇~~