码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-03-08 13:24:57      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

HTML代码:
<html>
    <head>
        <title>HTML中用JS调用OC方法</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        [removed]
            function openAlbum()
            {
                // 打开相册(openMyAlbum为OC中的方法)
                [removed].href = ios://openMyAlbum;
            }
            function openCamera()
            {
                // 打开相机(openMyCamera为OC中的方法)
                [removed].href = ios://openMyCamera;
            }
        [removed]
    </head>
    <body>
        <br/>
        <br/>
        <br/>
        <input type="button" value="打开相机"> <br><br/>
        <input type="button" value="打开相册"> 
    </body>
</html>


OC代码:
#import "ViewController.h"

@interface ViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webview;
- (IBAction)getTitle;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"test.html" withExtension:nil];
    [self.webview loadRequest:[NSURLRequest requestWithURL:url]];
    self.webview.delegate = self;
    self.webview.dataDetectorTypes = UIDataDetectorTypeAll;
}

#pragma mark UIWebViewDelegate方法
/**
 *开始加重请求拦截
 */
-(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;
}
/**
 *  OC执行JS代码
 */
- (IBAction)getTitle {
    
    [self.webview stringByEvaluatingJavaScriptFromString:@"alert(document.title);"];
}

-(void)openMyAlbum
{
    UIImagePickerController *vc = [[UIImagePickerController alloc]init];
    vc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentViewController:vc animated:YES completion:nil];
}

-(void)openMyCamera
{
    UIImagePickerController *vc = [[UIImagePickerController alloc]init];
    vc.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentViewController:vc animated:YES completion:nil];
}

@end

 

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

标签:

原文地址:http://www.cnblogs.com/Ganggang888/p/5253617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!