我编写了一个相当基本的iOS应用程序,它通过UIWebView元素使用Web内容。该应用程序需要在引导式访问模式下运行,因为它在面向客户的零售环境中运行。
在iOS 7下,一切正常,但自从更新到iOS 8后,启用了警报和#34; Guided Access。三击主页按钮退出"几乎每次点击网页上的链接时,屏幕顶部都会显示。
我尝试过从头开始创建一个除了UIWebView元素之外的新应用程序,问题仍然存在。我已向Apple提交了一个错误,但我正在寻求解决此问题的方法,以便不再向客户显示警报。
答案 0 :(得分:1)
感谢来自Kiosk Pro App的Chris,我找到了解决方法。
您需要使用导航类型" UIWebViewNavigationTypeLinkClicked"转换所有请求(仅在启用Guided Access时)。到导航类型" UIWebViewNavigationTypeOther"
此解决方法的一个问题是,对于使用类型"表单已提交"的链接,仍会显示Guided Access消息。和#34;表格重新提交"。尝试转换这些类型可能会导致加载页面时出错。
以下是来自自适应频道的Blandine的实现:
在方法中:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
只需添加:
if (UIAccessibilityIsGuidedAccessEnabled()) {
if (navigationType == UIWebViewNavigationTypeLinkClicked ) {
navigationType = UIWebViewNavigationTypeOther;
[webView loadRequest:request];
return NO;
}
}
希望它有所帮助。
答案 1 :(得分:0)
我终于找到了一个解决方法:从UIWebView迁移到WKWebView!适合我!