问题标签 [ios8.3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2140 浏览

ios - ios8.3 中不支持 LAContext 中的自定义用户后备按钮

我通过设置localizedFallbackTitle为“使用密码”自定义了后备按钮。有效。但是在我将 iPhone 更新到 iOS 8.3 后,后备按钮在 TouchID 视图上消失了。

这是 API 更新还是 iOS 8.3 的错误?

如何解决?

0 投票
4 回答
31511 浏览

ios - 静态库和 Swift

所以我正在使用 Swift 开发一个 iOS 项目,我想创建一个包含一些有用内容的静态库。

我的问题是当我尝试在 Xcode(6.3 版)中构建我的库时,我有一个“构建失败”,然后是:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: unknown option character 'X' in: -Xlinker

我从来没有见过这个,它不是我的第一个静态库。所以我想我可能与我只使用 Swift 类的事实有关。

你们有什么感想 ?先感谢您。

0 投票
3 回答
1360 浏览

ios - 了解 handleWatchKitExtensionRequest

我正在 iPhone 应用程序上测试一些代码的执行。我遵循 Apple 建议的文档(不使用后台任务,仅使用控制台日志)。但是我在控制台上没有得到任何东西(我想看到字符串“howdy”)。

这是因为我在模拟器上运行 WatchKit 扩展应用程序吗?或者有什么我想念的吗?


苹果 说:

如果您使用 openParentApplication:reply:,请确保在输入 application:handleWatchKitExtensionRequest:reply: 后立即创建后台任务。这将确保 iPhone 应用程序在后台获得时间,而不是再次暂停。此外,在 2 秒的 dispatch_after 中包装对 endBackgroundTask: 的调用,以确保 iPhone 应用程序在再次暂停之​​前有时间发送回复。

我在 WatchKit 扩展上的实现(链接到按钮的操作方法):

我在AppDelegate.m文件上的实现:

我在控制台中得到的:

0 投票
2 回答
1621 浏览

xcode - ERROR ITMS-90068: "This bundle is invalid. The value provided for the key MinimumOSVersion '8.3' is not acceptable."

I need to solve this Issue: ERROR ITMS-90068: "This bundle is invalid. The value provided for the key MinimumOSVersion '8.3' is not acceptable."

Because I was uploading my application to appstore and presented this error, my app is in the version 8.3 iOS

ThankU :*

0 投票
1 回答
313 浏览

ios - 辞职并成为 ios 8.3 中的第一响应者

我刚刚“升级”到 8.3,让我从一个 UITextfield 离开的逻辑不再起作用。现在使用以下代码,当用户完成文本并自动转到下一个字段时,它会清除上一个字段。这在早期的 ios 版本中完美运行。有什么建议么?谢谢。这令人抓狂。

0 投票
0 回答
1129 浏览

ios - iOS 8.3 UIWebView JavaScript 到本机通信中断

webView:shouldStartLoadWithRequest:navigationType:编辑:解决方案是在收到 JavaScript 消息时从委托方法返回 NO ,这解决了所有版本中的所有问题。

UIWebView在 iOS 8.3 中,JavaScript 与本机(Obj-C 或 Swift)通信的行为发生了变化。

假设我想从 JS 向本机代码1发送几条消息:

我使用这个委托方法来捕获本机代码中的消息:

我在我的 Xcode 控制台中得到以下信息:

注意每条消息的时间戳。前两个是直接进来的,但是连续的消息以10 秒的间隔准确地进来。在最后三个消息到达的 30 秒内,UI 冻结!控制台报错对应主线程(UI线程)被某些代码阻塞了10秒,超过这个时间限制后被系统杀死。

我猜 UIWebView 在 iOS 8.3 上在自己的线程中执行,但我对此还不太了解。根据这个答案UIWebView允许 JavaScript 最多执行 10 秒。所以我猜JavaScript在某种程度上冻结了,只有当它被杀死时,消息才会传递到本机代码。

另外,我认为window.open(myURL)效果更好的原因window.location = myURL是因为它必须创建一个新的线程或执行环境,这允许它将其消息发送到本机代码,而不会在它们到达之前压缩先前的消息。

1我使用window.open(myUrl)而不是window.location = myUrl,它只允许最后一条消息到达本机代码(有关可用的不同方法的详细信息,请参见附录 1)。

编辑 1 哦,不。setTimeout再次来到“救援”。setTimeout如果您以大约50 毫秒的延迟将后续消息包装在 a 中,那么测试用例 3 似乎适用于 iOS 8.3、8.1 和 7.0 。

但我正在寻找一种不会引入黑客攻击和延迟的永久解决方案。走这条路就像在沙柱上构建你的应用程序。

附录 1:UIWebView 的 JavaScript <-> 原生通信指南。

测试用例

window.location = myURL1) 通过本机代码发送两个或多个连续消息(使用window.location.href = myURL,window.location.replace(myURL)等是等效的)。

window.open(myURL)2) 通过或window.open(myURL, ‘_blank’)或通过创建以下标签之一并设置其src属性来发送两个或多个连续消息: <iframe>, <embed>. 请注意,以下标签不起作用:<audio>, <video>, <script>, <style>.

3) 使用请求缓冲区发送两个或多个连续消息。这确保仅在当前请求已经调用UIWebView委托方法时才调用下一个请求webView:shouldStartLoadWithRequest:navigationType:

示例 JavaScript:

原生 Obj-C:

测试结果(使用 iPhone 5 模拟器)

iOS 7.1

情况 1:只有最后一条消息到达。

情况 2:消息按顺序到达,每个消息之间延迟大约四分之一秒(即不算太糟糕)。

情况 3:消息按顺序到达,每条消息之间延迟大约四分之一秒(即不算太糟糕)。

iOS 8.1

案例一:同iOS 7.1

情况 2:前两个通常会立即到达,但接下来的两个会以 10 秒的间隔进入(同时,UI 冻结)。

案例3:同iOS 7.1

iOS 8.3

案例一:同iOS 7.1

案例2:同iOS 8.1

案例 3:前两个通常会立即到达,但接下来的会以 10 秒的间隔进入(同时,UI 冻结)。

0 投票
1 回答
238 浏览

ios - iOS 8.3,键盘扩展 Safari 问题

我正在制作 iOS 键盘扩展。

但是当我在 Safari Web 中单击按钮后执行以下代码时,代理(UITextDocumentProxy)停止了。

它在 safari-top-search-bar 中运行良好,但在其他纯文本框中停止。

如果我在adjustTextPositionByCharacterOffset之后将块放入另一个队列上的 dispatch_async 并有一些延迟。有用

但是,它也使我的代码在所有其他应用程序中变慢。

有什么好主意吗?或者有什么方法可以检测它是否是 Safari?

0 投票
1 回答
359 浏览

ios - 文档提供者的dismissGrantingAccessToURL 在iOS 8.3 中不起作用

我使用 Document Picker Extension 和 Document Porvider Extension 构建我的应用程序,它们在 iOS8.3 之前运行良好。

在 iOS 8.3 中,如果我调用了 dismissGrantingAccessToURL ,什么都不会发生。Picker 的视图控制器没有关闭,并且没有调用主机应用程序的委托函数didPickDocumentAtURL。没有任何错误或警告消息。它只是......什么也没发生!!!,就像我没有调用这个函数一样。

有人也有这个问题吗?

XCode:6.3 iOS:8.3

0 投票
0 回答
70 浏览

uiviewcontroller - 视图控制器转换被阻塞或延迟

我有这个交换视图控制器方法。它工作正常,除了某些东西正在阻塞或延迟完成块。我已将动画持续时间设置为零以进行测试,但我在设备(iPhone6+ iOS8.3 64GB)上观察到的是方法 transitionFromViewController:toViewController:duration:options:animations:completion: 被调用但 fromViewController 仍然存在在屏幕上,有很长的延迟(大约 5 秒),然后调用完成块,fromViewController 最终消失并被释放。此时 fromViewController 什么也不做。

有没有其他人看到过这种行为?或者知道确定主线程是否被阻塞并发现阻塞者是谁的好方法?

谢谢埃德。

0 投票
1 回答
335 浏览

ios - touchesBegan 和 touchesEnded 在 Xcode 6.3 更新后返回不同的触摸位置

这可能是我遇到过的最奇怪的问题,我什至不知道从哪里开始寻找 - 非常感谢任何帮助。

更新到 Xcode 6.3(和 iOS 8.3 SDK)后,在我的一个旧 OpenGL 应用程序中出现了一个新问题,在宽屏显示器上,任何 x 坐标触摸的上限为 320。这意味着如果我触摸高于 320 的 x 坐标,它将在触摸中注册为 320。

现在奇怪的是,这只发生在我的 touchesBegan 函数中EAGLView——touchesMoved并且touchesEnded仍然可以检测到多达 568 个,即使它们具有完全相同的代码。

有谁知道这可能是什么原因造成的?以下是所有 3 个功能中使用的触摸代码: