小编Ale*_*lex的帖子

UIWebView shouldStartLoadWithRequest只调用一次?

在我的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或链接或其他内容,并且在初始调用后不再调用处理程序; 如果是这种情况,我该如何清除此内部缓存?(不重新加载文件)

html iphone uiwebview

16
推荐指数
2
解决办法
2万
查看次数

GameCenter登录提醒

在我使用GameCenter开发的游戏中,我想处理以下场景:

  1. 用户启动游戏.系统会显示系统警报,提示他登录GameCenter.他暂时忽略了它.
  2. 过了一会儿,用户想要登录GameCenter并点击(例如)Leaderboards菜单项.他现在选择取消而不是登录.
  3. 这个过程重复了好几次.最终用户想要登录GameCenter.他再次单击Leaderboard菜单项.

在我的测试中,我发现通过调用"authenticateWithCompletionHandler"(由Apple的示例GameCenterManager调用)引发的警报弹出窗口建议登录到GameCenter只出现有限次数(4或5).最后一次显示,它显示"游戏中心已禁用,请使用Game Center应用程序登录以启用"Afterwards".之后,调用authenticateWithCompletionHandler不再执行任何操作 - 根本没有提示.

玩FruitNinja我试图复制这个.但是,在他们的情况下,每当我点击GameCenter项目(例如,成就)时,会出现"禁止游戏中心"的弹出窗口.

我想要做的是复制功能:也就是说,如果您没有登录到GameCenter,则在您单击Leaderboard菜单项时始终显示标准游戏中心警报.

有没有办法了解标准"登录游戏中心"警报是否已经出现,或者强制它始终出现(而不仅仅是前几次尝试)?

iphone gamekit game-center

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

iphone ×2

game-center ×1

gamekit ×1

html ×1

uiwebview ×1