zoukankan      html  css  js  c++  java
  • 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);

        };

    }

  • 相关阅读:
    stat 命令家族(2)- 详解 pidstat
    stat 命令家族(1)- 详解 vmstat
    Linux常用命令
    Linux常用命令
    Linux常用命令
    Linux常用命令
    Linux常用命令
    Linux常用命令
    打通MySQL架构和业务的任督二脉
    PostgreSQL JOIN LATERAL
  • 原文地址:https://www.cnblogs.com/jiangxue-iOS/p/7792214.html
Copyright © 2011-2022 走看看