2017-01-22 29 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

我正在試驗一次我得到了我原來的問題,我忘了恢復所有的實驗變化......這個問題與這個錯誤實際上是無關緊要的,但現在我不知道它很難刪除它... –

相關問題