PhoneGap setKeepCallback - Что это?

Я создал проект, где я установил успешную связь с моим плагином 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. из-за факта, что события bluetooth приходят не в определенные моменты времени, я зарегистрировал широковещательный приемник, который отправляет сообщения на мой 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 в этих разных функциях. Я думал, что будет документация, но нет.

Can someone tell me? I orientated the development on https://github.com/phonegap/phonegap-plugins/tree/master/Android/PhoneListener

8
nl ja de

1 ответы

Это означает, что обратный вызов на стороне JS сохраняется для дальнейших вызовов с родной (Java) стороны на сторону JS. Это где-то управляется в коде cordova.js.

Если вы посмотрите пример на плагин Network-Information: https://github.com /apache/cordova-plugin-network-information/blob/master/src/android/NetworkManager.java#L221 вы видите, что в каждом состоянии сети (WIFI, 3G, 4G, offline, ...) плагин отправьте результат в JS и сохраните обратный вызов, полученный каждым вызовом, с тем же успешным обратным вызовом на JS-сайте.

3
добавлено