[IOS經(jīng)驗(yàn)總結(jié)]UIWebView與JS之間的數(shù)據(jù)交互
[IOS經(jīng)驗(yàn)總結(jié)]UIWebView與JS之間的數(shù)據(jù)交互练慕,有需要的朋友可以參考下唯灵。
在IOS中原生控件很多.能自定義的控件也很多.但在視圖界面的開發(fā)上如果用原生的控件去做就顯得非常麻煩了.在我已知的技術(shù)中擁有最便捷和效果最好的視圖技術(shù)展示技術(shù)中.最優(yōu)秀的就要屬網(wǎng)頁.假如用到HTML來展示視圖界面的話.我們就需要一個(gè)承載的容器.這個(gè)容器IOS已經(jīng)幫我們提供好了,那就是我們今天的主角UIWebView控件.
準(zhǔn)備工作:
一個(gè)完整的html頁面.
一.將html網(wǎng)頁加載進(jìn)入U(xiǎn)IWebView容器中
在"-(void)viewDidLoad”方法中加入如下代碼
NSString*webPath = [[NSBundlemainBundle]pathForResource:@“HelloWord"ofType:@"html”];//獲取文件路徑
NSURL*webURL = [NSURLfileURLWithPath:webPath];//通過文件路徑字符串設(shè)置URL
NSURLRequest*URLRequest = [NSURLRequestrequestWithURL:webURL];//設(shè)置請求提交的相關(guān)URL
[self.webViewloadRequest:URLRequest];//提交請求
二.加入U(xiǎn)IWebViewDelegate委托(如果想要進(jìn)行相應(yīng)的數(shù)據(jù)交互必須添加相應(yīng)的我委托)
1.-(BOOL)webView:(UIWebView
*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType//html頁面的js動(dòng)作觸發(fā)時(shí)運(yùn)行
2.-(void)webViewDidFinishLoad:(UIWebView
*)webView //html加載完后觸發(fā)
三.OC提交JS請求.運(yùn)行JS方法
[self.webViewstringByEvaluatingJavaScriptFromString:@”方法名(%@)",參數(shù)]];
四.JS提交請求到OC
在-(BOOL)webView:(UIWebView*)webView
shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType中添加如下代碼:
NSString*requestString = [[requestURL]absoluteString];//獲取請求的絕對路徑.
NSArray*components = [requestStringcomponentsSeparatedByString:@":”];//提交請求時(shí)候分割參數(shù)的分隔符
if([componentscount]
>1&& [(NSString
*)[componentsobjectAtIndex:0]isEqualToString:@"testapp"])
{
//過濾請求是否是我們需要的.不需要的請求不進(jìn)入條件
if([(NSString
*)[componentsobjectAtIndex:1]isEqualToString:@"change"])
{
//所要執(zhí)行的操作
}
returnNO;
}
returnYES;
五.HTML中JS的寫法.
1.接收請求的方法寫法
functionfund(){
//操作
}
2.提交請求的方法寫法
functionsendCommand(cmd,param){
varurl="testapp:"+cmd+":"+param;//組合請求字符串
document.location = url;//提交的請求
}
最后附上例子程序(傳送陣):
http://download.csdn.net/detail/fqcl992/692937
文/神州iOS(簡書作者)
原文鏈接:http://www.reibang.com/p/d3d8c11629ff#
著作權(quán)歸作者所有注祖,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),并標(biāo)注“簡書作者”体谒。