2017-01-22 28 views
-1

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

我敢肯定,服务名,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" 
+0

错误信息足够冗长 - 您的javascript中缺少变量,“附加参数”不在手边。 – pkanev

+0

true ...我的代码的原始版本有一个不同的错误,但后来我开始尝试使用它,并忘记在发布之前恢复所有内容,但现在要移除问题为时已晚...... –

回答

1

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

+0

我正在试验一次我得到了我原来的问题,我忘了恢复所有的实验变化......这个问题与这个错误实际上是无关紧要的,但现在我不知道它很难删除它... –

相关问题