如何等待孩子活动结束

时间:2013-11-18 11:39:30

标签: javascript android cordova

我正在尝试制作一个phonegap / cordova插件,用于使用RecognizerIntent将语音转换为文本。以下是我的插件类代码:

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    this.callbackContext = callbackContext;
    try {
        if (ACTION_INVOKE_SPEECH_RECOG.equals(action)) { 

            //JSONObject arg_object = args.getJSONObject(0);

            Intent calIntent =  new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            calIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
            this.cordova.setActivityResultCallback(SpeechToTextPlugin.this);
            this.cordova.getActivity().startActivityForResult(calIntent,REQUEST_CODE );
            callbackContext.success("Completed Main Activity");

        }
        callbackContext.error("Invalid action");
        return false;
       } catch(Exception e) {
           System.err.println("Exception: " + e.getMessage());
           callbackContext.error(e.getMessage());
           return false;

    } 
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
      if (resultCode == Activity.RESULT_OK) {
          JSONObject obj = new JSONObject();

          try {
              //obj.put("TEXT", intent.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS).toString());
              callbackContext.success(intent.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS).toString());

          }catch(JSONException e){

          }
          super.onActivityResult(requestCode, resultCode, intent);
      }
}

我将识别的文本传递给调用execute方法的javascript。现在,在调用startActivityForResult之后,execute函数返回。如何将识别的单词传递给js?

1 个答案:

答案 0 :(得分:1)

你必须使用

sendJavascript("yourJSClass.yourJSMethod();");

或只是

sendJavascript("yourJSMethod();");

当然你必须:

yourJSMethod = function() {}
你的JS中的