iOS与JS交互

h5页面源代码片段


F5438FA8-9ABC-4CA2-A042-DB2799A10FAC.png

现在需要获取window.oneshare.onShare()方法,然后进行分享功能的实现

不bb直接上源码

#import  

//首先创建一个实现了JSExport协议的协议
//此处实现JSExport协议,为了OC不去修改JS代码,只是获取JS中的点击事件
@protocol JSObjectProtocol 

//跟js实例中一样名称的OC方法,必须的,否则不会执行
//- (void)onShareVoid;//js的方法没有参数
- (void)onShare:(NSString *)message;//js的方法有一个参数
@end
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    _jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    // 打印异常
    _jsContext.exceptionHandler =
    ^(JSContext *context, JSValue *exceptionValue)
    {
        context.exception = exceptionValue;
        NSLog(@"%@", exceptionValue);
    };
// 以 JSExport 协议关联 window 的方法
    _jsContext[@"oneshare"] = self;
}

- (void)onShare:(NSString *)message
{
    NSString *JsonStr = [message substringFromIndex:5];
    NSDictionary *JSDic = [self pareJSONStringToNSDictionary:JsonStr];
    shareTitle = JSDic[@"title"];
    shareDesc = JSDic[@"desc"];
    shareImg = JSDic[@"imgUrl"];
    shareLink = JSDic[@"link"];
    [self shareAction];
}

就可以实现
参考资料
http://blog.csdn.net/robinson_911/article/details/53118427

你可能感兴趣的:(iOS与JS交互)