問題タブ [ios-extensions]

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

ios - NSUserDefaults を介した AppGroup 間の iOS 9 ShareData

TodayExtension を既存のアプリに追加しようとしていますが、アプリと拡張機能が NSUserDefaults を介してデータを共有するようにしたいと考えています。このチュートリアルhttp://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/によると、 私はそれが好きでした:

  • Today 拡張機能を使用して新しいターゲットを作成する
  • 拡張機能とアプリに新しいアプリ グループを追加します
  • コードをアプリに追加
  • 拡張機能にコードを追加

アプリコード

延長コード

問題

私の問題は、拡張機能が常に 2 ではなく 0 を読み取ることです。明らかに何かが欠けています。AppGroup と NSUserDefaults の場合、iOS8 と 9 の間に大きな違いはありますか? アプリの間にwatchOS2があることは知っています。

より明確にするために、これは App and Extension NSUserDefaults のキーです

アプリキー

Appleキーボード

AppleKeyboardsExpanded

EmojiKeybordHandled の追加

AppleLanguages

Appleパスコードキーボード

優先言語

AppleLocale

NSInterfaceStyle

MSVLoggingMasterSwitchEnabledKey

NS言語

AppleITunesStoreItemKinds

IDコード

AppleLanguagesDidMigrate

PKEnableStockholmSettings

拡張キー

Appleキーボード

AppleKeyboardsExpanded

EmojiKeybordHandled の追加

AppleLanguages

Appleパスコードキーボード

優先言語

AppleLocale

NSInterfaceStyle

MSVLoggingMasterSwitchEnabledKey

NS言語

AppleITunesStoreItemKinds

AppleLanguagesDidMigrate

PKEnableStockholmSettings

キーidentityCodeが拡張子にまったく表示されていないことは明らかです。

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

ios - カスタム キーボードの許可を変更できません

アプリのさまざまな領域でカスタム キーボードを無効にしたいと考えています。application(_:shouldAllowExtensionPointIdentifier)アプリのデリゲートに実装し、条件付きでUIApplicationKeyboardExtensionPointIdentifier識別子付きの拡張機能を許可します。ただし、 への最初の呼び出しの後、この許可を変更できませんapplication(_:shouldAllowExtensionPointIdentifier)。たとえば、 へfalseの最初の呼び出しにapplication(_:shouldAllowExtensionPointIdentifier)戻りtrue、2 番目の呼び出しに戻ると、アプリでカスタム キーボードが無効のままになります。

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

ios - iCloud と DocumentPicker を使用しないドキュメント プロバイダー拡張機能の使用 - 非 UI バリアント

最近、iOS 8 で導入された Document Provider 拡張機能を使用して iOS アプリ間でデータを共有する方法に関する記事や情報を見つけました。

しかし、ほとんどすべての記事とチュートリアルで、iCloud または DocumentPicker のいずれかが使用されています。

私は基本的に、たとえばアプリ A で Sample.txt ファイルを作成して、大量のデータを保存しようとしています。アプリ B から、Document Provider 拡張機能を利用して Sample.txt ファイルの内容を読み取ることはできますか

理想的には、iCloud を使用したくありません。また、ドキュメント ピッカーやコントローラーなどを使用せずに、ボタンをクリックするだけでアプリ A からアプリ B にシームレスに移行したいと考えています。

これは可能ですか?

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

ios - drawRect は毎回呼び出されない

私は奇妙な問題に陥っています。タッチ時にキーのハイライトを描画する必要があるキーボード拡張機能を作成しています。私はそれをうまく行うことができますが、奇妙なことに、左上隅のいくつかのキー、特にキーQAでは、毎回ハイライトを描画しません。主に私のコードは次のようになります..

  1. オンtouchbegan- 呼び出してハイライトを描画[keysLayer setNeedsDisplay];
  2. オンtouchEnd- もう一度呼び出してハイライトを削除します[keysLayer setNeedsDisplay];

したがって、基本的に、drawRect関数はこれらの特定のキーで毎回呼び出されるわけではなく、他のすべてが正常に機能し、呼び出されることさえありsetNeedsDisplayます。

だから、私は助けを探しています.drawRect関数の呼び出しに失敗する可能性があります.理由のリストを知りたいです.

誰かが私を助けることができれば。

アップデート


コードの追加

KeysLayer ビューが追加された SuperView 内。

KeysLayer UIView クラス

更新 2


そのため、 iOS9.0を搭載したiPhone6でのみ発生する問題を発見しました。このテスト アプリケーションでこれを検証します。このテスト アプリケーションで驚くべきことに、iOS がdrawRectiOS バグと呼ばない特定のタッチ領域があることがわかりました。

下の添付画像を参照してください。実際に発生する場所を説明しています。解決策のない問題があります。助けが必要。

ここに画像の説明を入力

ありがとう。

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

ios - iOS メインアプリまたは拡張機能の確認

拡張機能でも共有されているメインのアプリファイルにこのように書きました。

実行対象が App Extension か iOS App かを検出する

ただし、拡張機能で UIAlertview を使用できないというエラーが表示されます。私もそのファイルを共有する必要があり、このコードのためだけに別の同じファイルを作成したくありません。どうやって確認しよう?

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

ios - バナーとしての iOS 8 アクション拡張表示

Instapaper の iOS 8 拡張機能を見たことがあるかもしれません。Safari で Instapaper に保存すると、ブラウザ全体が表示されたままになり、バナーが上部からアニメーション化し、自動的に非表示になります。

アクション拡張機能で同様のことをしようとしていますが、拡張機能は一貫して画面を非表示にします。

Info.plist にキーを追加し、NSExtensionActionWantsFullScreenPresentationに設定しましたNO。ストーリーボードでは、ビューの背景色を明確にしました。

現時点では次のようになっています。

現在の拡張子

0 投票する
2 に答える
1114 参照

ios - Safari からの画像を処理するためのアクション拡張機能

画像と URL (特に Web ページ) を開くことをサポートする必要がある iOS アクション拡張機能があります。ただし、Safari 内から画像を共有する場合、アクション拡張機能は使用可能な拡張機能のリストに表示されません。たとえば、https://en.wikipedia.orgにアクセスして共有アイコンをタップすると、私のアクション拡張機能が表示されますが、https://upload.wikimedia.org/wikipedia/commons/c/c4/PM5544_with_non-PAL_signals.pngにアクセスすると、共有アイコンをタップしてもしません。また、写真アプリに入り、共有する 1 つ以上の画像を選択すると、アクション拡張機能がオプションとして表示されます。最初に Info.plist ファイルを次のように試しました。

これは、共有シートのアクション拡張機能を介して、すべてのアプリから無制限の数の画像と URL を受け入れることを期待しています。ただし、そうではありません。画像の共有アイコンをタップすると、アクション拡張機能が表示されません。NSExtensionActivationRule次のように、キーのすべての値を追加するところまで行きました。

ただし、これでも問題は解決しません。これは、述語を使用する必要があるものですか? もしそうなら、どのように、そしてなぜですか?

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

ios - How to reactivate Typhoon assembly in iOS share extension?

I'm working on an app that contains a share extension, and both it and the container app use Typhoon assemblies for DI. The first time the share extension is launched, everything works fine, but any subsequent launches of the extension in the same session causes a crash the first time any one of the dependencies is referenced because all dependencies are now nil.

Both the app and extension use Plist integration, and so the assemblies are only run once. As such, when the extension is launched after the first time, the storyboard & view controllers are not injected with their dependencies. How can I make sure Typhoon injects its dependencies in the share extension each time it launches?