Uncategorized

Keyboard extensionで触覚フィードバックを実行する方法

Keyboard extensionを使用したカスタムキーボードを製作する際、触覚フィードバック(ボタンを押すとちょっとiPhoneが振動するやつ)を実装すべく、

let feedbackGenerator = UISelectionFeedbackGenerator()
feedbackGenerator.selectionChanged()

を実装しても、これだけでは動作しません!以下のエラーが発生します。

2022-11-04 17:18:39.938802+0900 JPKB7[25150:2411700] [hapi]         CHHapticEngine.mm:455   -[CHHapticEngine setupUnsharedAudioSessionAndReturnError:]: Failed to set category on audio session
2022-11-04 17:18:39.939793+0900 JPKB7[25150:2411700] [Feedback] failed initializing core haptics engine for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x2832f40e0>: Error Domain=NSOSStatusErrorDomain Code=1836282486 "(null)"

解決方法

キーボードのフルアクセスを許可をONにする必要があります。

カスタムキーボードのInfo.plistの設定

    <key>NSExtension</key>
    <dict>
        <key>NSExtensionAttributes</key>
        <dict>
               :
               :
            <key>RequestsOpenAccess</key>
            <true/>
        </dict>

RequestsOpenAccessの値をtrueにします。

端末側の設定

[設定]アプリの[一般]→[キーボード]→[キーボード]→(該当のカスタムキーボード)→[フルアクセスを許可]をONします。

この際仰々しいダイアログで許可を求めてきますが、致し方ありません。

 

-Uncategorized

© 2025 かずのアプリときどきキャンプ飯 Powered by AFFINGER5