WebViewJavascriptBridge使用

来源:互联网 发布:mac 切换输入法 编辑:程序博客网 时间:2024/05/16 18:56

由于项目中使用到原生和H5交互的技术,其实这个也有很多的解决方法,最后选择使用一个叫WebViewJavascriptBridge的进行操作。在项目使用中遇到很多问题,在这把配置和使用问题一一罗列出来
步骤:
1》

#import "WebViewJavascriptBridge.h"

2》

@interface HomeVC ()<UIWebViewDelegate>

3》

@property (strong, nonatomic) WebViewJavascriptBridge *bridge;

4》
加载web view;并且设置代理
5》
加载WebViewJavascriptBridge,

#pragma mark   加载js- (void)addJS {    self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) {}];    //   js调用oc    [self.bridge registerHandler:@"js_Call_Objc_Func" handler:^(id data, WVJBResponseCallback responseCallback) {        NSLog(@"=====111111====%@", data);        if ([data[@"type"]intValue] == 2) {#pragma mark 跳转到认证界面            Controllers *person = [[Controllers alloc]init];            person.share_id = self.share_id;            [self.navigationController pushViewController:person animated:YES];        } else if ([data[@"type"]intValue] == 1) {            LoginController *login = [[LoginController alloc]init];            UserDefaultsSave(kNoLogin, JRIsLogin);            [self.navigationController pushViewController:login animated:YES];        }    }];    //   js调用oc    [self.bridge registerHandler:@"help_js_Call_Objc_Func" handler:^(id data, WVJBResponseCallback responseCallback) {        NSLog(@"=====111111====%@", data);        //  点击跳转到对应的界面 然后点击返回按钮又回到这个页面        if ([data[@"type"]intValue] == 3 ) {            HomeHtml *homeHtml = [[HomeHtml alloc]init];            homeHtml.url = data[@"url"];            [self.navigationController pushViewController:homeHtml animated:YES];        }    }];}

6》
添加web view的代理方法并且在代理方法里面进行一些操作。

0 0