Я пишу небольшой родной плагин для Android для моего приложения NativeScript, но потом есть часть, где мне нужно передать несколько параметров строки в код Java, и это удивительно проблематично. Оказывается, когда я пытаюсь вызвать метод, который требует чего-либо другого в контексте android, вызов завершается с ошибкой.Как передать дополнительные параметры в собственный плагин для Android в NativeScript?
Вот мой JS, который вызывает метод:
var application = require("application");
var context = application.android.context;
module.exports = {
startService: function(serviceName) {
var serviceInitializer = new service.fi.geolocationpollingservice.ServiceInitializer();
serviceInitializer.startService(context, serviceName, userToken, locationUrl);
}
};
и вот фактический метод Java:
public class ServiceInitializer {
public void startService(Context context, String serviceName, String userToken, String backendUrl) {
Toast.makeText(context, "serviceName: " + serviceName + "; userToken: " + userToken + "; backendUrl: " + backendUrl, Toast.LENGTH_LONG).show();
}
}
Я уверен, что SERVICENAME, userToken и locationUrl инициализируются с соответствующими строковыми значениями, но когда я пытаюсь выполнить этот метод из своего приложения, я получаю следующую ошибку:
Unhandled Exception
com.tns.nativeScriptException: Calling js method onCreateView
Reference Error: userToken is not defined
File: "/data/data/org.nativescript.forni/files/app/tns_modules/geo-polling-service-plugin/index.js, line 7, column 62"
Сообщение об ошибке достаточно подробное - в вашем javascript отсутствуют переменные, «дополнительные параметры» - это не проблема. – pkanev
true ... у оригинальной версии моего кода была другая ошибка, но потом я начал экспериментировать с ней и забыл вернуть все, прежде чем публиковать ее здесь, но теперь уже слишком поздно, чтобы удалить вопрос ... –