Advertisement
Guest User

Untitled

a guest
Aug 26th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. package com.otb.cordova.keyboard;
  2.  
  3. import org.apache.cordova.CallbackContext;
  4. import org.apache.cordova.CordovaInterface;
  5. import org.apache.cordova.CordovaPlugin;
  6. import org.apache.cordova.CordovaWebView;
  7. import org.apache.cordova.PluginResult;
  8.  
  9. import org.json.JSONArray;
  10. import org.json.JSONException;
  11. import org.json.JSONObject;
  12.  
  13. import android.app.Activity;
  14. import android.view.View;
  15. import android.view.View.OnKeyListener;
  16. import android.view.KeyEvent;
  17. import android.view.*;
  18.  
  19. public class KeyboardPlugin extends CordovaPlugin implements OnKeyListener{
  20. private CallbackContext keyup_callback = null;
  21. private CallbackContext keydown_callback = null;
  22.  
  23. @Override
  24. public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
  25.  
  26. if (action.equalsIgnoreCase("keyUp")) {
  27. keyup_callback = callbackContext;
  28. }
  29. else if(action.equalsIgnoreCase("stopKeyUp")){
  30. keyup_callback = null;
  31. }
  32. else if(action.equalsIgnoreCase("keyDown")){
  33. keydown_callback = callbackContext;
  34. }
  35. else if(action.equalsIgnoreCase("stopKeyDown")){
  36. keydown_callback = null;
  37. }
  38. else {
  39. // invalid action
  40. return false;
  41. }
  42.  
  43. PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
  44. result.setKeepCallback(true);
  45. callbackContext.sendPluginResult(result);
  46.  
  47. return true;
  48. }
  49.  
  50. @Override
  51. public boolean onKey(View v, int keyCode, KeyEvent event) {
  52. if (event.getAction() == KeyEvent.ACTION_UP) {
  53. KeyUp(keyCode, event);
  54. }
  55. else if (event.getAction() == KeyEvent.ACTION_DOWN) {
  56. KeyDown(keyCode, event);
  57. }
  58. return false;
  59. }
  60.  
  61. private boolean KeyDown(int keyCode, KeyEvent event){
  62. if(keydown_callback == null){
  63. return true;
  64. }
  65. PluginResult result = new PluginResult(PluginResult.Status.OK, Integer.toString(keyCode));
  66. result.setKeepCallback(true);
  67. keydown_callback.sendPluginResult(result);
  68. return false;
  69. }
  70.  
  71. private boolean KeyUp(int keyCode, KeyEvent event){
  72. if(keyup_callback == null){
  73. return true;
  74. }
  75. PluginResult result = new PluginResult(PluginResult.Status.OK, Integer.toString(keyCode));
  76. result.setKeepCallback(true);
  77. keyup_callback.sendPluginResult(result);
  78. return false;
  79. }
  80. }
  81.  
  82. Plugin.keyboardPlugin = {
  83. onKeyUp: function(callback, onFail){
  84. cordova.exec(callback, onFail, 'KeyboardPlugin', 'keyUp', []);
  85. },
  86.  
  87. onKeyDown: function(callback, onFail){
  88. cordova.exec(callback, onFail, 'KeyboardPlugin', 'keyDown', []);
  89. },
  90.  
  91. stopKeyUp: function(callback, onFail){
  92. cordova.exec(callback, onFail, 'KeyboardPlugin', 'stopKeyUp', []);
  93. },
  94.  
  95. stopKeyDown: function(callback, onFail){
  96. cordova.exec(callback, onFail, 'KeyboardPlugin', 'stopKeyDown', []);
  97. }
  98. };
  99.  
  100. <?xml version="1.0" encoding="UTF-8"?>
  101. <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
  102. xmlns:android="http://schemas.android.com/apk/res/android"
  103. id="cordova-plugin-keyboard"
  104. version="0.0.1">
  105. <name>Keyboard Plugin</name>
  106. <description>This is a project to read key strokes from Cordova on Android.</description>
  107. <license>Apache 2.0</license>
  108. <keywords>cordova,plugin,keyboard</keywords>
  109. <repo>https://github.com/mircerlancerous/cordova-plugin-keyboard</repo>
  110. <issue>https://github.com/mircerlancerous/cordova-plugin-keyboard/issues</issue>
  111.  
  112. <engines>
  113. <engine name="cordova-android" version=">=3.6.0" /><!-- Requires CordovaPlugin.preferences -->
  114. </engines>
  115.  
  116.  
  117. <js-module src="www/plugin.js" name="keyboardPlugin">
  118. <runs/>
  119. </js-module>
  120.  
  121. <platform name="android">
  122. <config-file target="res/xml/config.xml" parent="/*">
  123. <feature name="KeyboardPlugin" >
  124. <param name="android-package" value="com.otb.cordova.keyboard.KeyboardPlugin"/>
  125. <param name="onload" value="true" />
  126. </feature>
  127. </config-file>
  128.  
  129. <source-file src="src/android/KeyboardPlugin.java" target-dir="src/com/otb/cordova/keyboard"/>
  130. </platform>
  131.  
  132. </plugin>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement