如何将其他参数传递给NativeScript中的本机android插件?

时间:2017-01-22 13:01:01

标签: java android nativescript

我正在为我的NativeScript应用程序编写一个小的原生android插件,但是有一部分我必须将几个字符串参数传递给java代码,这是一个令人惊讶的问题。事实证明,当我尝试通过android上下文调用一个需要其他任何东西的方法时,调用失败了。

这是我调用方法的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"

1 个答案:

答案 0 :(得分:1)

如果您的代码完全如上所示,那么错误消息就会出现;我没有看到一个名为userToken的JS变量。