zoukankan      html  css  js  c++  java
  • UIWebView中Html中用JS调用OC方法及OC执行JS代码

    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
  • 相关阅读:
    调用外部文件(ShellExecute)
    字体函数 -- GetDeviceCaps
    字体函数 -- EnumFonts
    字体函数 -- EnumFontFamilies
    回调函数 EnumFontFamProc
    AlphaBlend
    c# 编程修改 wince 系统时间
    windows 打开文件夹
    C# wince 实现软件忙鼠标状态改变
    CSDN第一期总结之三:Thread的问题(转)
  • 原文地址:https://www.cnblogs.com/Ganggang888/p/5253617.html
Copyright © 2011-2022 走看看