問題タブ [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 - LAContext のカスタム ユーザー フォールバック ボタンは ios8.3 ではサポートされていません

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 投票する
2 に答える
1621 参照

xcode - エラー ITMS-90068: 「このバンドルは無効です。キー MinimumOSVersion '8.3' に指定された値は受け入れられません。」

この問題を解決する必要があります: ERROR ITMS-90068: 「このバンドルは無効です。キー MinimumOSVersion '8.3' に指定された値は受け入れられません。」

アプリケーションを appstore にアップロードし、このエラーを表示したため、私のアプリはバージョン 8.3 iOS です。

ありがとう :*

0 投票する
1 に答える
313 参照

ios - iOS 8.3 で辞任し、ファーストレスポンダーになる

8.3 に「アップグレード」したところ、1 つの UITextfield から移動できるロジックが機能しなくなりました。次のコードを使用すると、ユーザーがテキストを終了して自動的に次のフィールドに移動すると、前のフィールドがクリアされます。これは、以前の iOS バージョンでは完全に機能します。助言がありますか?ありがとう。これは腹立たしいです。

0 投票する
0 に答える
1129 参照

ios - iOS 8.3 UIWebView JavaScript からネイティブ通信への壊れた

編集: 解決策は、JavaScript メッセージが受信されたときにデリゲート メソッドから NO を返すことでしたwebView:shouldStartLoadWithRequest:navigationType:。これにより、すべてのバージョンですべてが解決されました。

UIWebViewiOS 8.3 では、JavaScript からネイティブ (Obj-C または Swift) への通信の動作が変更されました。

JS からネイティブ コード1にいくつかのメッセージを送信したいとします。

このデリゲート メソッドを使用して、ネイティブ コードでメッセージをキャッチします。

そして、Xcode コンソールで次のように表示されます。

各メッセージのタイムスタンプに注意してください。最初の 2 つはすぐに届きますが、連続するメッセージはちょうど 10 秒間隔で届きます。最後の 3 つのメッセージが到着する 30 秒間に、UI がフリーズします。コンソールのエラーは、メイン スレッド (UI スレッド) がなんらかのコードによって 10 秒間ブロックされ、この時間制限を超えた後にシステムによって強制終了されたことに対応しています。

UIWebView は iOS 8.3 の独自のスレッドで実行されると推測していますが、これについてはまだよくわかりません。この回答によると、 UIWebViewJavaScript は最大 10 秒間実行できます。したがって、JavaScript が何らかの理由でフリーズしていると思います。それが強制終了された場合にのみ、メッセージはネイティブ コードに到達します。

window.open(myURL)また、よりうまく機能する理由は、新しいスレッドまたは実行環境を作成する必要があるためだと思いwindow.location = myURLます。これにより、以前のメッセージが到着する前につぶすことなく、メッセージをネイティブ コードに送信できます。

1window.open(myUrl)の代わりにを使用しますwindow.location = myUrl。これは、最後のメッセージがネイティブ コードに到達することのみを許可します (使用可能なさまざまな方法の詳細については、付録 1 を参照してください)。

編集1 ああいいえ。setTimeout再び「救助」に来ます。setTimeoutテスト ケース 3 は、後続のメッセージを50 ミリ秒の遅延でラップすると、iOS 8.3、8.1、および 7.0 で動作するようです。

しかし、ハックや遅延を引き起こさない恒久的な解決策を探しています。この道を進むことは、砂の柱の上にアプリを構築するようなものです。

付録 1: UIWebView の JavaScript <-> ネイティブ通信のガイド。

テストケース

window.location = myURL1)ネイティブ コードを介して 2 つ以上の連続したメッセージを送信します ( window.location.href = myURLwindow.location.replace(myURL)などを使用しても同等です)。

2)次のタグのいずれかを作成し、その属性を設定することによりwindow.open(myURL)、 またはを介し​​て 2 つ以上の連続したメッセージを送信します: 、。次のタグは機能しないことに注意してください: 、、、。window.open(myURL, ‘_blank’)src<iframe><embed><audio><video><script><style>

3) リクエストのバッファを使用して、2 つ以上の連続したメッセージを送信します。UIWebViewこれにより、現在のリクエストがすでにデリゲート メソッドを呼び出している場合にのみ、次のリクエストが呼び出されるようになりwebView:shouldStartLoadWithRequest:navigationType:ます。

JavaScript の例:

ネイティブ Obj-C:

テスト結果 (iPhone 5 シミュレーターを使用)

iOS7.1

ケース 1: 最後のメッセージのみが到着します。

ケース 2: メッセージが順番に到着し、それぞれの間に約 1/4 秒の遅延があります (つまり、それほど悪くはありません)。

ケース 3: メッセージが順番に到着し、それぞれの間に約 1/4 秒の遅延があります (つまり、それほど悪くはありません)。

iOS 8.1

ケース 1: iOS 7.1 と同じ

ケース 2: 通常、最初の 2 つはすぐに到着しますが、次の 2 つは 10 秒間隔で到着します (その間、UI はフリーズします)。

ケース 3: iOS 7.1 と同じ

iOS 8.3

ケース 1: iOS 7.1 と同じ

ケース 2: iOS 8.1 と同じ

ケース 3: 通常、最初の 2 つはすぐに到着しますが、次の 2 つは 10 秒間隔で到着します (その間、UI はフリーズします)。

0 投票する
1 に答える
238 参照

ios - iOS 8.3、キーボード拡張 Safari の問題

iOSキーボード拡張機能を作っています。

しかし、Safari Web でボタンをクリックした後に次のコードを実行すると、proxy( UITextDocumentProxy) が停止しました。

safari-top-search-bar では問題なく動作しますが、他のプレーン テキスト ボックスで停止します。

ブロックを別のキューの dispatch_async に入れた場合、adjustTextPositionByCharacterOffsetの後に多少の遅延があります。できます

ただし、他のアプリ全体でもコードが遅くなります。

何か良いアイデアはありますか?またはSafariかどうかを検出する方法はありますか?

0 投票する
1 に答える
359 参照

ios - iOS 8.3 でドキュメント プロバイダーの DismissGrantingAccessToURL が機能しない

Document Picker Extension と Document Povider Extension を使用してアプリを構築しましたが、iOS8.3 より前ではうまく機能していました。

iOS 8.3 では、 dismissGrantingAccessToURLを呼び出しても何も起こりませんでした。ピッカーのビュー コントローラーが閉じられず、ホスト アプリのデリゲート関数didPickDocumentAtURLが呼び出されませんでした。エラーや警告メッセージはありませんでした。それはただ...何も起こらなかった!!!、私がこの関数を呼び出さなかったように。

誰にもこの問題がありますか?

XCode: 6.3 iOS: 8.3

0 投票する
0 に答える
70 参照

uiviewcontroller - View Controller の移行がブロックされているか、遅延しています

このスワップビューコントローラーメソッドがあります。何かが完了ブロックをブロックまたは遅延していることを除いて、正常に動作します。テストのためにアニメーションの長さをゼロに設定しましたが、デバイス (iPhone6+ iOS8.3 64GB) で観察しているのは、メソッド transitionFromViewController:toViewController:duration:options:animations:completion: が呼び出されたが、fromViewController が残っていることです。画面上では、長い遅延 (約 5 秒) があり、完了ブロックが呼び出され、fromViewController が最終的に消えて割り当てが解除されます。fromViewController は現時点では何もしていません。

他の誰かがこの動作を見たことがありますか? または、メイン スレッドがブロックされているかどうかを判断し、ブロックしている人物を特定する良い方法を知っていますか?

ありがとうエド。

0 投票する
1 に答える
335 参照

ios - Xcode 6.3 の更新後、touchesBegan と touchesEnded が異なるタッチ位置を返す

これはおそらく私がこれまでに遭遇した中で最も奇妙な問題であり、どこから探し始めればよいのかさえわかりません - どんな助けでも大歓迎です。

Xcode 6.3 (および iOS 8.3 SDK) に更新した後、古い OpenGL アプリの 1 つに新しい問題が発生しました。ワイドスクリーン ディスプレイでは、x 座標のタッチが 320 に制限されます。つまり、320 を超える x 座標にタッチすると、 、タッチで320として登録されます。

EAGLView奇妙なことに、これは myのtouchesBegan 関数でのみ発生し、まったく同じコードtouchesMovedtouchesEnded持っていても、最大 568 まで検出できます。

誰がこれを引き起こしているのか知っていますか? 3 つの機能すべてで使用されるタッチ コードは次のとおりです。