JS與OC的簡單交互

js(javascript)與ios(Objective-C)相互通訊交互

地址:http://www.skyfox.org/javascript-ios-navive-message.htmljavascript

 

直接上代碼
.m文件html

1java

2ios

3web

4框架

5atom

6url

7spa

8.net

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#import "ViewController.h"

@interface ViewController () @property (weak, nonatomic) IBOutlet UIWebView*webView;

@end

@implementation ViewController

- (void)viewDidLoad 

{    

  [super viewDidLoad]; //經過本地html文件加載網頁

  [self.webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle]URLForResource:@"test" withExtension:@"html"]]];

}

- (void)call 

{    //撥打電話    

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];

}

//是否容許加載從webview得到的請求

/* 

*該方法能夠實現js調用OC 

*js和OC交互的第三框架可使用:WebViewJavaScriptBridge 

*/

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

{    

//得到html點擊的連接    

NSString *url = request.URL.absoluteString;    

//設置協議頭    

NSString *scheme = @"zc://";    

//判斷得到的連接前面是否包含設置頭    

if([url hasPrefix:scheme])

{        

//切割字符串

NSString *methodName = [url substringFromIndex:scheme.length];

//調用打電話的方法

[self performSelector:NSSelectorFromString(methodName) withObject:nil];          

      return NO;    

 }else{            

      return YES;    

    }

}

html 文件

1.jpg

storyboard

2.png

運行結果

3.png

相關文章
相關標籤/搜索