1

私は「javaで書かれたネイティブ」のAndroidアプリに取り組んでおり、サーバーからの応答を取得しています。応答はjavascript関数です

この関数を使用して、ネイティブ Java コード内で計算を行う必要があります。

その方法についてのアイデア。

サンプル応答:

function logic_1(surveyString, responseValuesString) { 
    var survey = eval(surveyString);
    var responseValues = eval(responseValuesString);
    var target = new Object();
if (isChosen(128133225, responseValues)) { 
target.id = 2;
}
if (! target.id) { 
    target.id = 2;
 } 
    return target;
 } 
4

3 に答える 3

3

以前、Rhino を使用して Android で JavaScript コードを実行したことがあります: http://www.mozilla.org/rhino/

于 2012-03-28T09:27:30.977 に答える
1

複合型から値を返す方法の例を次に示します。

String strFunction = 
        "function add(x,y){ " +
            "return { " +
                "id:x+y " +
            "}; " +
        "}";

Context context = Context.enter();
ScriptableObject scope = context.initStandardObjects();
context.evaluateString(scope, strFunction, "test", 1, null);

Function functionAdd = (Function)scope.get("add");
NativeObject untypedResult = (NativeObject)functionAdd.call(context, scope, scope, new Object[] { 1, 2 });
double id = (Double)untypedResult.get("id", untypedResult);

重要な部分は最後の 2 行です。JavaScript 関数を呼び出し、結果を NativeObject として扱い、そのオブジェクトから 'id' プロパティの値を取得します。

于 2012-03-28T13:45:31.867 に答える
0

たぶんあなたはJavaScript auto executing functionこのようなものを使う必要があります:

(function(x, y){
  var result;
  result = x + y; // do some calculations
  return result;
})(1 , 2); //  you can set your parameters from Java

1, 2はJavaからの2つのパラメータです

于 2012-03-28T09:25:24.690 に答える