-
設置屬性
@property WKWebViewJavascriptBridge* bridge;
-
初始化 WebViewJavascriptBridge
if (_bridge) { return; } //打開輸出日志 [WKWebViewJavascriptBridge enableLogging]; _bridge = [WKWebViewJavascriptBridge bridgeForWebView:self.wkWebView]; [_bridge setWebViewDelegate:self]; //請求加載網頁舒憾,注意:這里h5加載完孝治,會自動執(zhí)行一個調用oc的方法 [self loadExamplePage:self.wkWebView];
3.注冊監(jiān)聽js動作絮重。將js動作在客戶端實現(xiàn)
- (void)viewDidLoad {
//監(jiān)聽方法寥殖。 js 調用 OC
[self jsJumpToLogin];
}
//跳轉到登錄 jswv_login
- (void)jsJumpToLogin{
// 只要js那邊有調用jswv_login 在 代碼塊中會自動響應我們寫的方法
// 當然方法名倆端一致 。不然監(jiān)聽個什么東西 重慢??
[_bridge registerHandler:@"jswv_login" handler:^(id data, WVJBResponseCallback responseCallback) {
//注銷
[ChildHttpReq Post:ALogout parm:nil showHud:YES sucess:^(NSDictionary *responseObject) {
if ([responseObject[@"result"] isEqual:@200]) {
//延遲一秒
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//跳轉到登錄頁
LoginViewController *loginVC = [LoginViewController new];
[self.navigationController pushViewController:loginVC animated:NO];
});
}
} failure:^(NSError *error) {
NSLog(@"%@",error);
}];
}];
}
- OC 回調js
// // 主動調用 js方法。讓js做動作...
- (void)chooseAll{
[_bridge callHandler:@"wvjs_bottomLeftBtn"];
}
- wk 在用WebViewJavascriptBridge這個框架的時候缕探。 會因為初始化慢的問題,有時候交互有用有時候交互又沒用还蹲。此時應該叫后臺的伙伴爹耗。在沒獲取到的時候耙考。再重新獲取即可。潭兽。倦始。