IOS中 webView 獲取 後臺JS返回的方法

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);

    };

}

相關文章
相關標籤/搜索