我在我的应用程序中使用了Photoswipe,它工作得非常好。现在我有一个工具栏和一个导航栏,因此当在“全屏”中查看照片时,工具栏和导航栏仍然可见,因此它实际上不是全屏。我想知道是否可以隐藏/显示工具栏/导航栏,具体取决于点击/关闭图像的时间。
我发现这会隐藏工具栏
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
self.navController.hidden = YES;
}
return YES;
}
到目前为止一切顺利,但是当用户点击Photoswipe中的退出按钮时,如何让工具栏返回(这只是另一个链接)?
感谢任何帮助!
答案 0 :(得分:0)
我倾向于发现依赖于UIWebViewNavigationTypeLinkClicked或者任何类型的webView:shouldStartLoadWithRequest:会给你不一致的结果。我建议使用JSBridge,您可以使用它创建将传递给Cocoa的字典对象。有了这个,您可以保证捕获事件并使用自定义信息加载事件。
为此,您创建一个JSBridgeWebView(UIWebView的子类)并设置要处理的委托:
-(void) webView:(UIWebView*)webView didReceiveJSNotificationWithDictionary:(NSDictionary*) dictionary {
NSLog(@"Received notification dictionary %@", dictionary);
}
然后添加一个快速的JavaScript函数:
function sendShowToolBarNotification() {
var obj = new JSBridgeObj();
obj.addObject("eventName", "showToolBar");
obj.sendBridgeObject();
}
现在您可以拥有一个链接,将此通知发送到您的应用程序:
<a href="javascript:sendShowToolBarNotification()">Click here to show toolbar</a>