Objective-C 与js 交互遇到的问题

前段时间, 公司App需要js 交互处理一些Sina支付的问题(资金管理Sina支付要全盘接手), 初次搞Objective-C 与js交互, 多亏天狐大神的博客 (天狐博客一生烟雨一场梦,一世红尘一阙歌), 帮我这个菜鸟解决了问题, 感恩ing~
接下来说说我的问题:
js关联:

self.context=[self.sinaWebview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
//以JSExport协议关联native的方法
self.context[@"longkinAPIFunction"] =self;

调用的Objective-C方法:

- (void)sinaClickBack:(NSInteger)optype order:(NSString*)order {
    [self.navigationController popViewControllerAnimated:YES];
}

然而这样做在iOS10上会crash, iOS10以下虽然没有crash, 但是控制台会出现一堆错误信息.
解决办法:
在主线程中执行Objective-C代码:

- (void)sinaClickBack:(NSInteger)optype order:(NSString*)order {
    __weaktypeof(self) weakSelf =self;
    dispatch_async(dispatch_get_main_queue(), ^{
        [weakSelf.navigationController popViewControllerAnimated:YES];
    });
}

具体原因目前还没理解, 但是能解决问题... 管它呢😁 , 后续再慢慢琢磨.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容