IOS js调OC方法

1,  <!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <script>

        var test2 =function(){

            alert(2);

            onTest2("aaaa");

        }

        var test3 =function(){

            alert(3);

            window.external.onTest3("bbbb","cccc");

        }

  </script>

    <title>

    </title>

</head>

<body>

    <button onclick="test1()">字典参数</button>

    <button onclick="test2()">字符串参数</button>

    <button onclick="test3()">两个字符串参数</button>

</body>

</html>


2.  

#import <Foundation/Foundation.h>

#import <JavaScriptCore/JavaScriptCore.h>

@protocol external <JSExport>

-(void) onTest3: (NSString *) message :(NSString*)bbbb;

-(void) test1;

@end

@interface WBExternal : NSObject<external>

@end

3.

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

        if (_jsContext ==nil) {

                // 1.

        _jsContext = [webViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

        // 2. 关联打印异常

        _jsContext.exceptionHandler = ^(JSContext *context,JSValue *exceptionValue) {

            context.exception = exceptionValue;

            NSLog(@"异常信息:%@", exceptionValue);

        };

        WBExternal *nativeApis = [[WBExternalalloc] init];

        _jsContext[@"external"] = nativeApis;

        


        _jsContext[@"onTest2"] = ^(NSString *param) {

            NSLog(@"%@", param);

        };

        _jsContext[@"test1"] = ^() {

            NSLog(@"%@",@"test1");

        };  

        // Mozilla/5.0 (iPhone; CPU iPhone OS 10_10 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B411

        id userAgent = [webViewstringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];

        NSLog(@"%@", userAgent);

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值