我正在加载本地。html文件到UIWebView中,然后如果用户点击。html文件中的链接或按钮,另一个页面将被加载,可能是本地或远程。(我将这些直接加载到相同的UIWebView中,因此Safari不会被调用)。
如果从第一个链接的页面被加载,我希望导航栏出现,并出现一个后退按钮,这样用户就可以导航回起始页,就好像网页在本地应用程序的视图。实现这一目标的最佳方式是什么?是否有可能使用本地结构,而不是在页面本身放置反向链接或放置一些JavaScript等?
谢谢
最好的方法是实现
– webView:shouldStartLoadWithRequest:navigationType:
这个委托。当你的webview准备发出请求时,这个方法会被调用。当有人点击你网页上的一个按钮时,你会得到对这个方法的调用。在你接到这个电话后,你可以选择对它做任何你想做的事情。比如通过你自己的服务器重定向链接,或者记录一个关于用户活动的请求到你的服务器等。在您的示例中,显示激活了后退按钮的导航栏。
示例-这里myMethodAction
是您想要放置导航栏外观逻辑的地方。
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
if(navigationType == UIWebViewNavigationTypeLinkClicked)
{
if(overrideLinksSwitch.on == TRUE)
{
[self myMethodAction];
[myWebView stopLoading];
return YES;
}
else
{
return YES;
}
}
return YES;
}