iOSH5因其及時響應(yīng)的更新速度媲美著需求的速度和較高的趣味性受到越來越多的用戶的青睞。目前,大多數(shù)的應(yīng)用中都嵌入了H5。優(yōu)點非常明顯。那么在iOS應(yīng)用中如何嵌入一個H5,并且和它進行交互就成了一個勢必要掌握的技術(shù)了。本文我將結(jié)合我在項目中的一些需求整理出對應(yīng)的技術(shù)點,僅供參考。
在iOS開發(fā)中,H5的嵌入可以通過UIWebView或者WKWebView。這兩個都是繼承UIView,來加載web數(shù)據(jù)的類。UIWebView是在iOS2的時候開始使用的。特點是加載速度慢,占用內(nèi)存多,優(yōu)化艱難。WKWebView是在iOS8蘋果新推出的,加載速度快,占用內(nèi)存較少,是一個不錯的選擇。如果想要比較兩者的區(qū)別,您可以選擇一個網(wǎng)頁進行測試一下。鑒上所述,我們選擇WKWebView進行開發(fā)。好了,廢話不多說了。
1
WKWebView創(chuàng)建和加載
- (void)createWebView
{
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]
// 根據(jù)需要去設(shè)置對應(yīng)的屬性
WKWebView *webView = [[WKWebView alloc]initWithFrame:self.view.bounds configuration:config];
webView.navigationDelegate = self;
?。踫elf.view addSubview:webView];
NSURL *url = [NSURL URLWithString:self.strURL];
[self loadWebViewWithURL:url]; // JS調(diào)用OC 添加處理腳本
?。踫elf.webView.configuration.userContentController addMessageHandler:self name:@“Share”];
}
2
JS調(diào)用OC代碼
[self.webView.configuration.userContentController addMessageHandler:self name:@“Share”];
這是利用WKWebView的一個新特性MessageHandler來處理JS調(diào)用原生方法。要實現(xiàn)JS調(diào)用iOS原生方法,步驟見下。
添加《WKMessageHandler》協(xié)議。讓控制器成為MessageHandler的代理對象。