當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
实现OC与JS的交互
生活随笔
收集整理的這篇文章主要介紹了
实现OC与JS的交互
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
js-->oc 利用webView的重定向原理(即重新在js中指定document.location的值,此為一url),只要在這個(gè)url字符串中按自定義的規(guī)則指定好所需調(diào)用oc中的函數(shù)和參數(shù),然后通過(guò)OC中的shouldStartLoadWithRequest函數(shù)去捕獲處理請(qǐng)求。
?
?| 1 2 3 4 5 | //APP調(diào)用webView加載的JS中的方法interfaceCalledByAPP,此例傳入了兩個(gè)參數(shù) - (void)sendMessage:(id)sender { ????[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"interfaceCalledByAPP(\"%@\",\"%@\")", @"2",@"333"]]; } |
| 1 2 3 4 | //JS向APP傳值。首先實(shí)現(xiàn)UIWebView的代理,然后根據(jù)NSURLRequest的URL進(jìn)行不同處理 //JS中的將要傳遞的數(shù)據(jù)作為URL重定向 var tempurl = "將要傳遞的值"; window.location.href= encodeURI(encodeURI(tempurl)); |
?
?
?| 1 2 3 4 5 6 7 8 9 10 11 | //webView的代理相應(yīng)重定向 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ ????NSString *requestString = [[[request URL]? absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; ????NSLog(@"should-------"); ????if ([requestString hasPrefix:@"url://"]) { ????????//根據(jù)自己定義的規(guī)則,通過(guò)字符串的值,調(diào)用OC的方法。這里就輸出一下字符串了。 ????????NSLog(@"===%@",requestString); ????} ????return YES; } |
?
總結(jié)
以上是生活随笔為你收集整理的实现OC与JS的交互的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 批量put和单条put
- 下一篇: TCL 华星 32 英寸 UHD 240