For iOS devices, the eject key on wireless keyboard is used to switch between the wireless keyboard and the on-screen keyboard. I modified Jeff's Simple HID-over-GATT keyboard example to show how to implement eject key by BGScript. I attached the BGScript project here.
Points to note:
1. UUID of 0x2a46 (see gatt.xml) is the Report Map characteristic, which is used to specify the HID report descriptor. In this example, the descriptor for keyboard (for normal keys) and consumer page (for a consumer control HID usage that implements Volume Up, Down, Play/Pause, etc...) are included. For the details, please refer to the attached HID_descriptor.txt.
2. Below tables show the HID keyboard report and HID consumer page report format:
3. The following buttons on BLExxx evaluation board are used to send HID keyboard report and consumer page report.
Button P0_0: send capital "A" by HID keyboard report
Button P0_1: send "Eject key" by HID consumer page report
4. As the push buttons on evaluation board has "bouncing" (multiple keystrokes for a single press) problem, you may see multiple characters on the screen for a single press on these buttons.
1. Keyglove at http://www.keyglove.net/2013/05/30/complex-bluetooth-hid-with-iwrap-and-the-bluegiga-wt12/
2. Simple HID-over-GATT keyboard demo at http://community.silabs.com/t5/Wireless-Knowledge-Base/BGScript-hid-over-gatt-keyboard-Simple-HID-over-GATT-keyboard/ta-p/147782
3. iWRAP Application: HID Profile Configuration and Usage at https://www.bluegiga.com/en-US/products/bluetooth-classic-modules/iwrap-bluetooth-stack/documentation/