iOS - UI - UIWebView

一、UIWebView
UIWebView 是 蘋果提供的用來展現網頁的UI控件。它也是最佔內存的控件。css

iOS8.0 webkit框架。 WKWebView,相比UIWebView,節省了1/3~1/4的內存,速度快,可是沒緩存功能。html

 

iOS開發 Xcode native原生開發 + Html5 -> 混合開發java

Android開發 Eclipse / MyEclipse Android Studiojquery

Html5 javaScript css + div jquery + mobile DreamWare Sublimeweb

 

iOS 和 HTML5緩存

 

oc js 之間的交互網絡

 

oc 調用 js 代碼 stringByEvaluatingJavaScriptFromString框架

 

js 調用 oc 代碼 蘋果沒提供,是經過代理來完成的。佈局



//後退
[self.webView goBack];lua

//前進
[self.webView goForward];

//刷新
[self.webView reload];

//webView加載本地網頁1

NSURL * htmlURL = [[NSBundle mainBundle] URLForResource:@"index.html" withExtension:nil];

[self.webView loadRequest:[NSURLRequest requestWithURL:htmlURL]];
//webview加載網絡請求
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];

//webView加載本地網頁2
NSString * path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString * htmlString = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];

[self.webView loadHTMLString:htmlString baseURL:nil];

//若是網頁不是響應式佈局,須要調這個方法
self.webView.scalesPageToFit = YES;

//是否響應電話等信息
self.webView.dataDetectorTypes = UIDataDetectorTypeNone;

四、UIWebView 代理方法
/**
* 當用戶點擊網頁某個鏈接,或者是按鈕的時候出發
*
* @param webView
* @param request 網頁上的鏈接請求
* @param navigationType
*
* @return 是否跳轉到該鏈接
*/
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

NSLog(@"%@",request.URL);

return YES;
}

//網頁開始加載
- (void)webViewDidStartLoad:(UIWebView *)webView {
self.backBtn.enabled = webView.canGoBack;
self.forwardBtn.enabled = webView.canGoForward;
}

//網頁結束加載
- (void)webViewDidFinishLoad:(UIWebView *)webView {

self.backBtn.enabled = webView.canGoBack;
self.forwardBtn.enabled = webView.canGoForward;

//使用JavaScript進行編譯
self.title = [self.webView stringByEvaluatingJavaScriptFromString:@"document.title」];

[self.webView stringByEvaluatingJavaScriptFromString:@"alert('登陸成功')"];

}

//網頁加載失敗- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error { NSLog(@"%@",error);}

相關文章
相關標籤/搜索