1

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

在 iOS 7 下一切正常,但自从更新到 iOS 8 后,几乎每次点击网页上的链接时,屏幕顶部都会显示一条警告“引导访问已启用。三次单击主页按钮退出”。

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

4

2 回答 2

1

感谢 Kiosk Pro App 的 Chris,我找到了一种解决方法。

您需要将导航类型“UIWebViewNavigationTypeLinkClicked”的所有请求(仅当引导访问打开时)转换为导航类型“UIWebViewNavigationTypeOther”

此解决方法的一个问题是,对于使用“已提交表单”和“已重新提交表单”类型的链接,仍会出现“引导式访问”消息。尝试转换这些类型可能会导致加载页面时出错。

这是 Blandine 来自 Adaptive Channel 的一个实现:

在方法中:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

只需添加:

if (UIAccessibilityIsGuidedAccessEnabled()) {
        if (navigationType == UIWebViewNavigationTypeLinkClicked ) {
            navigationType = UIWebViewNavigationTypeOther;
            [webView loadRequest:request];
            return NO;
        }
}

希望能帮助到你。

于 2014-12-11T23:26:46.523 回答
0

我终于找到了一个解决方法:从 UIWebView 迁移到 WKWebView !!!为我工作!

于 2014-12-11T09:27:24.527 回答