【发布时间】:2015-12-19 14:15:26
【问题描述】:
自 iOS9 发布以来,我的 Web 应用程序不再运行。 自 iOS9 以来,该应用程序使用基于 url 哈希的导航和路由更改以不可预测的方式触发。
我做了很多研究,发现在IOS9 UIWebview中window.location的管理存在问题。
与这篇文章相关,Angular 社区似乎已经通过发布的 angular.js 补丁解决了这个问题。
https://gist.github.com/IgorMinar/863acd413e3925bf282c
问题已被确定为: iOS9 UIWebview 在使用 window.location 时不会同步更新 href
我查看了他们在 IOS9 中的更正,但我没有找到一种方法来重现他们的更正以使其适用于任何(非角度)webapp。
https://github.com/angular/angular.js/commit/8d39bd8abf423517b5bff70137c2a29e32bff76d#otherHash https://github.com//petebacondarwin/angular.js/commit/47f16f35c213dbb165567102231ac1496246c456 https://github.com//angular/angular.js/blob/master/src/ng/browser.js
是否有人找到或正在研究使角度解决方案在任何(非角度)网络应用程序中工作的解决方案?
更新:
这就是我要调用的那种链接
domain/player/index.html
然后
domain/player/index.html#/online/presentation/ru1XA0nkvgHm/slide/0
与
[self.view stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.location.href = '#/offline/presentation/%@/slide/%ld?isNativeApp=1%@%@'",moduleId,(long)slideNumber,infoIcons,testingMode]]);
我做了测试,发现了一些奇怪的东西。
如果我使用最后一个命令进行两次调用,则第二次会触发 hashchange 事件。
我不想将应用重新提交到应用商店,我想修改我的 html(可以从服务器获取)以检测哈希更改并使应用正常工作。
【问题讨论】:
-
你能给出一个“基于 URL 哈希的导航和路线更改”的代码示例吗?
-
@mark - 我已经用 url 示例更新了描述
-
我也遇到了同样的问题。我还进行了两次重装以使其正常工作,这太烦人了
标签: uiwebview ios9 window.location hashchange