Ios WebViewJavascriptBridge在解除ViewController时不会再次调用
当视图第一次显示时,js事件正常运行。然后我使用Ios WebViewJavascriptBridge在解除ViewController时不会再次调用,ios,uiwebview,Ios,Uiwebview,当视图第一次显示时,js事件正常运行。然后我使用presentViewController显示我单击的图像。dismissViewController后,返回webView,再次单击图像,但js callHandler不会运行。这是我的密码 // oc file code - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (_bridge) { return; } _
presentViewController
显示我单击的图像。dismissViewController
后,返回webView,再次单击图像,但js callHandler不会运行。这是我的密码
// oc file code
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (_bridge) { return; }
_bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView];
[_bridge registerHandler:@"jsImagesList" handler:^(id data, WVJBResponseCallback responseCallback) {
self.imageList = data;
}];
[_bridge registerHandler:@"openImageOnIndex" handler:^(id data, WVJBResponseCallback responseCallback) {
[self openImageOnIndex:data];// use MWPhotoBrowser to show the image
}];
}
// js file code
function setupWebViewJavascriptBridge(callback) {
// just copy from WebViewJavascriptBridge
}
setupWebViewJavascriptBridge(function(bridge) {
var objs = document.getElementsByTagName("img");
var images = [];
for(var i=0;i<objs.length;i++) {
images.push(objs[i].src);
objs[i].setAttribute('data-index',i);
objs[i].onclick = function(){
// just for test, let me know I can click the img
document.body.style.backgroundColor = '#'+Math.floor(Math.random()*0xFFFFFF).toString(16);
var di = this.getAttribute('data-index');
// ----------- question -----------
// first time it run, but when dismissViewController, it not run
bridge.callHandler('openImageOnIndex', {'i': di}, function(response) {})
}
}
bridge.callHandler('jsImagesList', images, function(response) {})
})
//oc文件代码
-(无效)视图将显示:(BOOL)动画{
[超级视图将显示:动画];
if(_桥){return;}
_bridge=[WebViewJavascriptBridge bridgeForWebView:self.webView];
[_桥寄存器句柄:@“jsImagesList”句柄:^(id数据,WVJBResponseCallback responseCallback){
self.imageList=数据;
}];
[_桥寄存器句柄:@“openImageOnIndex”句柄:^(id数据,WVJBResponseCallback responseCallback){
[self-openImageOnIndex:data];//使用MWPhotoBrowser显示图像
}];
}
//js文件代码
函数setupWebViewJavascriptBridge(回调){
//只需从WebViewJavascriptBridge复制即可
}
setupWebViewJavascriptBridge(函数(桥){
var objs=document.getElementsByTagName(“img”);
var图像=[];
对于(var i=0;i