UIWebView中Html中用JS调用OC方法及OC执行JS代码

来源:互联网 发布:穆里尼奥讽刺颜强 知乎 编辑:程序博客网 时间:2024/05/01 20:17
HTML代码:

<html>

    <head>

       <title>HTML中用JS调用OC方法</title>

        <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">

       <script>

           function test()

            {

                alert("test alert...");

               return"abcd";

            }

        </script>

    <body>

        

       <br/>

       <br/>

       <br/>

        <a href='ios://openMyAlbum'>打开相机</a><br><br/>

            

        <a href = 'ios://openMyCamera'>打开相册</a>

                

    </body>

    

</html>




#OBJECT-C


-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{                NSString        *urlstr = request.URL.absoluteString;        NSRange        range = [urlstr             rangeOfString:@"ios://"];        if                (range.length!=0)    {                NSString                *method = [urlstr                   substringFromIndex:(range.location+range.length)];                SEL                selctor = NSSelectorFromString(method);                [self                  performSelector:selctor                  withObject:nil];            }        return        YES;    }-(void)openMyAlbum{        UIImagePickerController        *vc = [[UIImagePickerController                        alloc]init];        vc.sourceType        = UIImagePickerControllerSourceTypePhotoLibrary;        [self          presentViewController:vc          animated:YES          completion:nil];    }-(void)openMyCamera{    [_webView stringByEvaluatingJavaScriptFromString:@"test();"];            return;        UIImagePickerController        *vc = [[UIImagePickerController                        alloc]init];        vc.sourceType        = UIImagePickerControllerSourceTypeCamera;        [self          presentViewController:vc          animated:YES          completion:nil];    }- (void)viewDidLoad {    [super viewDidLoad];            _webView = [[UIWebView alloc] initWithFrame:self.view.bounds];    [self.view addSubview:_webView];        NSString *path = [[NSBundle mainBundle] pathForResource:@"test.html" ofType:nil];        NSURL *url = [NSURL fileURLWithPath:path];    NSURLRequest *req = [[NSURLRequest alloc] initWithURL:url];        _webView.delegate   = self;    _webView.dataDetectorTypes  = UIDataDetectorTypeAll;        [_webView loadRequest:req];    // Do any additional setup after loading the view, typically from a nib.}



1 7
原创粉丝点击