1:web發送請求。
NSUrl *? sendUrl =[NSURL URLWithString:***];
NSString * body = [NSString stringWithFormat: @"%@",***];
request1 =[NSMutableURLRequest requestWithURL:sendUrl];
[request1 setHTTPMethod: @"POST"];
[request1 setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];
[mywebView loadRequest:request1];
2:項目中經常有遇到OC和webview的交互
比如:頁面放個webView ,還有其他的控件放在webview的下面
那么問題來了:怎么確定webview的frame &&修改webview的內容的大小呢???
為了解決這些問題,網上查了些資料這里做個筆記
1:確定webview的Frame和修改webview內容的屬性
//網頁字體大小放大2.5倍
[webView? stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];
具體實現
- (void)webViewDidFinishLoad:(UIWebView *)webView ? {
[webView? stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];//網頁字體大小放大2.5倍
CGFloat webViewHeight= [webView.scrollView contentSize].height;
CGRect newFrame = webView.frame;
newFrame.size.height = webViewHeight*2.5;//高度相對對應的也修改。
webView.frame = newFrame;
//這里就得到了 webview修改后的frame了,可以依據這個坐標來確定其他的控件坐標了。
}
還有一些其他可以設置的屬性:(在webViewDidFinishLoad代理方法中)
//獲取頁面Title
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
//獲取當前頁面到URL
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
//字體顏色
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'gray'"];
//頁面背景色
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='#2E2E2E'"];
//實現點擊圖片全屏查看
[webView? stringByEvaluatingJavaScriptFromString:@"function assignImageClickAction(){var imgs=document.getElementsByTagName('img');var length=imgs.length;
for(var i=0;i<length;i++) {img=imgs[i];img.onclick=function(){window.location.href='image-preview:'+this.src}}}"];
[webView stringByEvaluatingJavaScriptFromString:@"assignImageClickAction();"];?
//webView上圖片的等比縮放。
[webView stringByEvaluatingJavaScriptFromString:? ? @"var script = document.createElement('script');"??
? "script.type = 'text/javascript';"? ?
"script.text = \"function ResizeImages() {"
?"var myimg,oldwidth;" ??
?"var maxwidth = 300.0;" // UIWebView中顯示的圖片寬度? ??
?"for(i=0;imaxwidth){"
"oldwidth = myimg.width;"
"myimg.width = maxwidth;""}""}""}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
[webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();”];
2:webview的代理方法返回數據
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
//這里的request.URL.scheme是和后臺約定的返回字段。
//request.URL.absoluteString 后臺給返回的數據:比如返回一個圖片的URL。或者跳轉到某個控制器等等。
if ([request.URL.scheme isEqualToString:@"*****"]) {
NSString* path = [request.URL.absoluteString substringFromIndex:[@"*****" ?length]];
path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//這里得到路徑。path就是我們點擊圖片后得到的圖片URL,然后你可以在這里做你點擊之后要執行的代碼
return NO;
} ??return YES;
}
學無止境,做個記錄
2017-01-16-SXH