1.首先導入類庫前端
#import <JavaScriptCore/JavaScriptCore.h>java
2.聲明屬性web
@property (nonatomic, strong) JSContext *jsContext;函數
3.在webviewDidFinshLoad中實現截獲JS返回的方法作進一步的本地處理post
if(!self.jsContext)atom
{spa
self.jsContext = [webView valueForKeyPath :@"documentView.webView.mainFrame.javaScriptContext"];ip
}webview
[self addShareWithContext:self.Context];it
4.實現自定義addShareWithContext方法(在這個方法中會獲取JS返回前端的方法,能夠作下一步本地操做)
/**
context[@"notifyAppCartCount"] 其中notifyAppCartCount是後臺JS返回的方法名 咱們根據context就能夠截獲該方法
^(NSNumber *count)這裏block回調中作下一步本地操做便可
這裏的block參數(NSNumber)是JS返回的數據類型 count 是JS返回的值 (若是隻須要截獲方法 JS沒有返回值則能夠隨便自定義類型)
*/
- (void)addShareWithContext:(JSContext *)context
{
__weak typeof(self) weakSelf = self;
// 建立函數
context[@"notifyAppCartCount"] = ^(NSNumber *count){
//下面是根據本身的需求作相應的本地操做處理
weakSelf.cartCount = count;
NSDictionary *dict = @{@"cartCount":count};
[[NSNotificationCenter defaultCenter] postNotificationName:kShopCartCountNotificationName object:weakSelf.cartCount userInfo:dict];
NSLog(@"購物車變化%@", count);
};
}