IOS中 webView 获取 后台JS返回的方法

1.首先导入类库

#import <JavaScriptCore/JavaScriptCore.h>

2.声明属性

@property (nonatomic, strong) JSContext *jsContext;

3.在webviewDidFinshLoad中实现截获JS返回的方法做进一步的本地处理

  if(!self.jsContext)

  {

    self.jsContext = [webView valueForKeyPath :@"documentView.webView.mainFrame.javaScriptContext"];

  }

  [self addShareWithContext:self.Context];

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

    };

}

转载于:https://www.cnblogs.com/jiangxue-iOS/p/7792214.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值