在iOS 8中启用Guided Access的UIWebView中点击链接时显示警报

时间:2014-11-04 20:35:21

标签: ios objective-c uiwebview guided-access

我编写了一个相当基本的iOS应用程序,它通过UIWebView元素使用Web内容。该应用程序需要在引导式访问模式下运行,因为它在面向客户的零售环境中运行。

在iOS 7下,一切正常,但自从更新到iOS 8后,启用了警报和#34; Guided Access。三击主页按钮退出"几乎每次点击网页上的链接时,屏幕顶部都会显示。

我尝试过从头开始创建一个除了UIWebView元素之外的新应用程序,问题仍然存在。我已向Apple提交了一个错误,但我正在寻求解决此问题的方法,以便不再向客户显示警报。

2 个答案:

答案 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!适合我!