転载:iosの中でobjective-cとjsのインタラクション
7267 ワード
元の出典:http://mkhgg.blog.51cto.com/1741572/752962
iOSでjsとobjective-cの相互作用
iOSにはWebKit.Frame eworkというライブラリがないので、window Script Objectの対象となる方法がないです.これの方法があれば
便利になりました.
今は他の方法を利用して、jsとobjective-cの相互作用効果を達成します.
まず、objective-cでjsのコードを呼び出します.uiwebviewの一つの方法を使ってもいいです.
strigByEveraluating JavaScript FroomString:後に続くのはjs中の方法名です.この関数の戻り値は呼出されたjsメソッドです.
の戻り値を返します.
jsでobjective-cを呼び出す方法はそんなに簡単ではありません.
jsのコードはこうするべきです.
また、objective-cにおいても、uiwebviewを利用する方法の一つであり、
iOSでjsとobjective-cの相互作用
iOSにはWebKit.Frame eworkというライブラリがないので、window Script Objectの対象となる方法がないです.これの方法があれば
便利になりました.
今は他の方法を利用して、jsとobjective-cの相互作用効果を達成します.
まず、objective-cでjsのコードを呼び出します.uiwebviewの一つの方法を使ってもいいです.
strigByEveraluating JavaScript FroomString:後に続くのはjs中の方法名です.この関数の戻り値は呼出されたjsメソッドです.
の戻り値を返します.
jsでobjective-cを呼び出す方法はそんなに簡単ではありません.
jsのコードはこうするべきです.
1 function testFunc(cmd,parameter1)
2 {
3 alert(1);
4 document.write(Date());
5 document.location="objc://"+cmd+":/"+parameter1; //cmd objective-c ,parameter1
6 }
また、objective-cにおいても、uiwebviewを利用する方法の一つであり、
1 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:
2 (NSURLRequest*)request navigationType:
3 (UIWebViewNavigationType)navigationType //
4 {
5 NSString *urlString = [[request URL] absoluteString];
6 NSArray *urlComps = [urlString
7 componentsSeparatedByString:@"://"];
8 if([urlComps count] && [[urlComps objectAtIndex:0]
9 isEqualToString:@"objc"])
10 {
11 NSArray *arrFucnameAndParameter = [(NSString*)[urlComps
12 objectAtIndex:1] componentsSeparatedByString:@":/"];
13 NSString *funcStr = [arrFucnameAndParameter objectAtIndex:0];
14 if (1 == [arrFucnameAndParameter count])
15 {
16 //
17 if([funcStr isEqualToString:@"doFunc1"])
18 {
19 /* 1*/
20 NSLog(@"doFunc1");
21 }
22 }
23 else if(2 == [arrFucnameAndParameter count])
24 {
25 //
26 if([funcStr isEqualToString:@"doFunc1"] &&
27 [arrFucnameAndParameter objectAtIndex:1])
28 {
29 /* 1*/
30 NSLog(@"doFunc1:parameter");
31 }
32 }
33 return NO;
34 };
35 return YES;
36 }
js objective-c , js,
stringByEvaluatingJavaScriptFromString: ,
stringByEvaluatingJavaScriptFromString:
がjsを する は、 り をjsメソッドのパラメータ として えます.
jsこれはあります.
“ ” , http://mkhgg.blog.51cto.com/1741572/752962
:https://www.cnblogs.com/ifiew/p/4030714.html
・