私はプロジェクトを作成し、BluetoothプラグインからJavaScriptへの通信を成功させました。私のJavascriptから、Javaでプラグインへのコールバックを登録します。
if (action.equals(ACTION_REGISTER_CALLBACK)) {
if(mJSCallback != null) {
pluginResult = new PluginResult(PluginResult.Status.ERROR, "An event callback has already been registered.");
} else {
mJSCallback = callbackId;
pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
pluginResult.setKeepCallback(true);
}
}
もちろん、これはexec関数で行われます。ブルートゥースイベントが特定の時点で発生しないという事実のために、たとえばデバイスが見つかったときに、JavaScriptにメッセージを送信するブロードキャストレシーバーを登録しました。
if(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
sendMessagetoJSCallback(new PluginResult(PluginResult.Status.OK, "Discovery finished."));
}
送信するための所属関数:
public void sendMessagetoJSCallback(PluginResult res) {
res.setKeepCallback(true);
success(res, mJSCallback);
}
その文脈で私が本当に理解していなかったことは、setKeepCallbackがそれらのさまざまな関数で何をするかということです。ドキュメントがあると思いましたが、ありません。
誰か教えてもらえますか?https://github.com/phonegap/phonegap-plugins/tree/master/Android/PhoneListenerで開発を方向付けました