iOS開發(fā): webView的交互發(fā)送請求

1:web發(fā)送請求。

NSUrl *? sendUrl =[NSURL URLWithString:***];

NSString * body = [NSString stringWithFormat: @"%@",***];

request1 =[NSMutableURLRequest requestWithURL:sendUrl];

[request1 setHTTPMethod: @"POST"];

[request1 setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];

[mywebView loadRequest:request1];


2:項目中經(jīng)常有遇到OC和webview的交互

比如:頁面放個webView ,還有其他的控件放在webview的下面

那么問題來了:怎么確定webview的frame &&修改webview的內(nèi)容的大小呢???

為了解決這些問題,網(wǎng)上查了些資料這里做個筆記


1:確定webview的Frame和修改webview內(nèi)容的屬性

//網(wǎng)頁字體大小放大2.5倍

[webView? stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];

具體實現(xiàn)


- (void)webViewDidFinishLoad:(UIWebView *)webView ? {

[webView? stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '250%'"];//網(wǎng)頁字體大小放大2.5倍

CGFloat webViewHeight= [webView.scrollView contentSize].height;

CGRect newFrame = webView.frame;

newFrame.size.height = webViewHeight*2.5;//高度相對對應(yīng)的也修改。

webView.frame = newFrame;

//這里就得到了 webview修改后的frame了,可以依據(jù)這個坐標(biāo)來確定其他的控件坐標(biāo)了。


還有一些其他可以設(shè)置的屬性:(在webViewDidFinishLoad代理方法中)

//獲取頁面Title

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

//獲取當(dāng)前頁面到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'"];

//實現(xiàn)點擊圖片全屏查看

[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的代理方法返回數(shù)據(jù)

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

//這里的request.URL.scheme是和后臺約定的返回字段。

//request.URL.absoluteString 后臺給返回的數(shù)據(jù):比如返回一個圖片的URL。或者跳轉(zhuǎn)到某個控制器等等。

if ([request.URL.scheme isEqualToString:@"*****"]) {

NSString* path = [request.URL.absoluteString substringFromIndex:[@"*****" ?length]];

path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

//這里得到路徑。path就是我們點擊圖片后得到的圖片URL,然后你可以在這里做你點擊之后要執(zhí)行的代碼

return NO;

} ??return YES;

}

學(xué)無止境,做個記錄

2017-01-16-SXH

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容