iOS与JS交互

作者: 静花寒 | 来源:发表于2017-03-24 10:44 被阅读74次

h5页面源代码片段


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

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

不bb直接上源码

#import <JavaScriptCore/JavaScriptCore.h> 

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

//跟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交互

    本文链接:https://www.haomeiwen.com/subject/zpwxottx.html