Как я могу получить доступ к экземпляру приложения из класса плагина? - PullRequest
0 голосов
/ 07 февраля 2020

Я создаю плагин конденсатора, который будет регистрировать уведомления pu sh от внутренней связи на устройствах android. Из внутренних документов мне нужно передать приложение в первый аргумент intercomPushClient.sendTokenToIntercom(getApplication(), refreshedToken);, как указано в их документах здесь , но я получаю ошибку cannot find symbol method getApplication(). Как я могу получить доступ к приложению из моего класса плагинов? Ниже часть моего файла плагина.

package com.capacitor.intercom.push.plugin;

import com.getcapacitor.Config;
import com.getcapacitor.JSObject;
import com.getcapacitor.NativePlugin;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;

import io.intercom.android.sdk.Intercom;
import io.intercom.android.sdk.push.IntercomPushClient;
import io.intercom.android.sdk.identity.Registration;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;
import com.google.firebase.messaging.FirebaseMessaging;

@NativePlugin()
public class CapacitorIntercomPush extends Plugin {

    public static final String CONFIG_KEY_PREFIX = "plugins.CapacitorIntercomPush.android-";
    private final IntercomPushClient intercomPushClient = new IntercomPushClient();


    @PluginMethod()
    public void getToken(final PluginCall call) {
        FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(getActivity(),  new OnSuccessListener<InstanceIdResult>() {
            @Override
            public void onSuccess(InstanceIdResult instanceIdResult) {
                // This is where I need to pass the application into the intercom pushClient
                intercomPushClient.sendTokenToIntercom(getApplication(), instanceIdResult.getToken());
                JSObject data = new JSObject();
                data.put("token", instanceIdResult.getToken());
                call.success(data);
            }
        });
        FirebaseInstanceId.getInstance().getInstanceId().addOnFailureListener(new OnFailureListener() {
            public void onFailure(Exception e) {
                call.error("Failed to get instance FirebaseID", e);
            }
        });
    }
}
...