在我的iPhone应用程序中,我有一个UIWebView,我正在加载一个本地的HTML.一切正常,但现在我想能够处理本地链接(到脚注):当我点击本地链接时,我希望能够跳到它所引用的脚注,然后能够回来.
<a href="#tofootnote">jump to footnote</a>
Run Code Online (Sandbox Code Playgroud)
我通过将我的代码添加到shouldStartLoadWithRequest并拦截本地链接点击来处理此问题; 当点击本地链接时,我会运用我的魔法(隐藏一些ui元素,添加后退按钮等等); 单击后退按钮会将我跳回到html文档中的原始位置.
问题是单击链接上的ONCE不再调用shouldStartLoadWithRequest.即,以下代码:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"foo bar");
return YES;
}
Run Code Online (Sandbox Code Playgroud)
只显示"foo bar"ONCE(实际上,两次 - 我第一次加载文档时),但之后只有ONCE,无论我点击本地链接多少次
因此,除非有人有更好的解释,否则我猜测UIWebView会缓存doc或链接或其他内容,并且在初始调用后不再调用处理程序; 如果是这种情况,我该如何清除此内部缓存?(不重新加载文件)
在我使用GameCenter开发的游戏中,我想处理以下场景:
在我的测试中,我发现通过调用"authenticateWithCompletionHandler"(由Apple的示例GameCenterManager调用)引发的警报弹出窗口建议登录到GameCenter只出现有限次数(4或5).最后一次显示,它显示"游戏中心已禁用,请使用Game Center应用程序登录以启用"Afterwards".之后,调用authenticateWithCompletionHandler不再执行任何操作 - 根本没有提示.
玩FruitNinja我试图复制这个.但是,在他们的情况下,每当我点击GameCenter项目(例如,成就)时,会出现"禁止游戏中心"的弹出窗口.
我想要做的是复制功能:也就是说,如果您没有登录到GameCenter,则在您单击Leaderboard菜单项时始终显示标准游戏中心警报.
有没有办法了解标准"登录游戏中心"警报是否已经出现,或者强制它始终出现(而不仅仅是前几次尝试)?