1

文字列の配列を NPAPI プラグインに渡したいと思います。NPVariantを文字列の配列に変換するにはどうすればよいですか?

4

2 に答える 2

6

jldupontが提案したこととは別の方向に進んでいるようです。配列をパラメーターとしてプロパティまたはメソッドに渡す場合:

var arrayData = [1,2,3,4,5];
plugin.someProperty = arrayData;
// -or-
plugin.callSomeMethod(arrayData);

そのパラメーターは、タイプ NPVariantType_Object の NPVariant として NPObject に取得されます。次に、長さプロパティをクエリします。

NPObject *inObject = val->value.objectValue;
NPVariant npvLength;
NPN_GetProperty(npp, inObject, NPN_GetStringIdentifier("length"), &npvLength);

次に、 for ループを実行してすべての値を取得します。

for (uint32_t i = 0; i < npvLength.value.intValue; i++) {
    NPVariant curValue;
    NPN_GetProperty(npp, inObject, NPN_GetIntIdentifier(i), &curValue);
    // Do something with curValue
}

同様に、配列を JavaScript に返す必要がある場合、別のオプション (jldupont がリンクしているスレッドで提案したように、オブジェクトをエミュレートするメソッドを作成する以外) は、NPN_GetValue を使用して DOM ウィンドウの NPObject を取得することです。次に、パラメーターなしで「配列」を呼び出します。これは、空の JS Array オブジェクトを (NPObject* として) 返します。次に、返したいアイテムをループして、そのアイテムを最初の (そして唯一の) パラメータとして "push" を呼び出します。

お役に立てれば

于 2009-12-24T18:07:58.277 に答える
2

NPObject (このスレッドを参照) を使用して、文字列のコンテナーとして機能させることができます ( var arrayOfString={...strings here...}.

于 2009-12-13T11:36:59.403 に答える