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

来源:互联网 发布:mac 下 ndk环境搭建 编辑:程序博客网 时间:2024/05/01 17:33
1
2
3
4
5
6
7
8
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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"
 
@interfaceViewController ()<UIWebViewDelegate>
@property(weak, nonatomic)IBOutletUIWebView *webview;
- (IBAction)getTitle;
 
@end
 
@implementationViewController
 
- (void)viewDidLoad
{
    [superviewDidLoad];
    NSURL*url = [[NSBundlemainBundle]URLForResource:@"test.html"withExtension:nil];
    [self.webviewloadRequest:[NSURLRequestrequestWithURL: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;
    NSRangerange = [urlstr rangeOfString:@"ios://"];
    if(range.length!=0) {
        NSString*method = [urlstr substringFromIndex:(range.location+range.length)];
        SELselctor = NSSelectorFromString(method);
        [selfperformSelector:selctorwithObject:nil];
    }
    returnYES;
}
/**
 *  OC执行JS代码
 */
- (IBAction)getTitle {
     
    [self.webviewstringByEvaluatingJavaScriptFromString:@"alert(document.title);"];
}
 
-(void)openMyAlbum
{
    UIImagePickerController*vc = [[UIImagePickerControlleralloc]init];
    vc.sourceType= UIImagePickerControllerSourceTypePhotoLibrary;
    [selfpresentViewController:vcanimated:YEScompletion:nil];
}
 
-(void)openMyCamera
{
    UIImagePickerController*vc = [[UIImagePickerControlleralloc]init];
    vc.sourceType= UIImagePickerControllerSourceTypeCamera;
    [selfpresentViewController:vcanimated:YEScompletion:nil];
}
 
@end
有用0没用3
6899 查看  •  Ho Ho 创建  •  2014-11-20 13:27:02
  • Html段的代码 少了一些 我补充下 可以直接用这个替代 原作者的 就可以了
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/>
            <title>HTML中用JS调用OC方法</title>
        [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="打开相册"><br/>
           <input type=button name=smt value='确定'>
                
        </body>
    </html>
    Tag : UIWebView , JavaSript
    有用1没用0
    Conquer-2014 创建 • 2015-02-11 15:24:09
  • <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/> 
    <title>HTML中用JS调用OC方法</title> 
    [removed] 
    function openAlbum() 

    // 打开相册(openMyAlbum为OC中的方法) 
    [removed].href = 'ios://openMyAlbum'; 

    function openCamera() 

    // 打开相机(openMyCamera为OC中的方法) 
    [removed].href = 'ios://openMyCamera'; 

    [removed] 
    </head> 
    <body> 







    <input type="button" value="打开相机" > 


    <input type="button" value="打开相册"><br/> 
    <input type=button name=smt value='确定'> 

    </body> 
    </html>
    ?
    1
    code4会自动过滤一些脚步也是醉了
    有用0没用0
    Conquer-2014 创建 • 2015-02-11 15:25:50
  • 这才是对的,
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <html>
     <head>
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/>
         <title>HTML中用JS调用OC方法</title>
         [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="打开相册">
           <br/>
             <input type=button name=smt value='确定'>
        </body>
    </html>
    有用0没用0
    Acer1800 创建 • 2015-03-02 15:41:02
  • <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/> 
    <title>HTML中用JS调用OC方法</title> 
    [removed] 
    function openAlbum() 

    // 打开相册(openMyAlbum为OC中的方法) 
    [removed].href = 'ios://openMyAlbum'; 

    function openCamera() 


    // 打开相机(openMyCamera为OC中的方法) 
    [removed].href = 'ios://openMyCamera'; 

    [removed] 
    </head> 
    <body> 







    <input type="button" value="打开相机" > 




    <input type="button" value="打开相册"> 


    <input type=button name=smt value='确定'> 
    </body> 
    </html> 
    代码写在这里,有些东西被自动改掉了。
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <html>
     <head>
    <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"/>
         <title>HTML中用JS调用OC方法</title>
         [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="打开相册">
           <br/>
             <input type=button name=smt value='确定'>
        </body>
    </html>
    有用0没用0
    Acer1800 创建 • 2015-03-02 15:42:26
  • ?
    1
    求联系方式,求test.html.谢谢!
0 0
原创粉丝点击