由于项目中使用到原生和H5交互的技术,其实这个也有很多的解决方法,最后选择使用一个叫WebViewJavascriptBridge的进行操作。在项目使用中遇到很多问题,在这把配置和使用问题一一罗列出来
步骤:
1》
#import "WebViewJavascriptBridge.h"
2》
@interface HomeVC ()<UIWebViewDelegate>
3》
@property (strong, nonatomic) WebViewJavascriptBridge *bridge;
#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(@"=========%@", 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(@"=========%@", data); // 点击跳转到对应的界面 然后点击返回按钮又回到这个页面 if ([data[@"type"]intValue] == 3 ) { HomeHtml *homeHtml = [[HomeHtml alloc]init]; homeHtml.url = data[@"url"]; [self.navigationController pushViewController:homeHtml animated:YES]; } }]; }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231478.html原文链接:https://javaforall.net
