質問
私はNPAPIプラグインに文字列の配列を渡すしたいと思います。どのように私は、文字列の配列に NPVariant に変換するのですか?
解決
あなたはjldupontが提案したものから、他のdiretctionを行っているように見えます。あなたは、プロパティまたはメソッドのいずれかへのパラメータとして配列を渡すときます:
var arrayData = [1,2,3,4,5];
plugin.someProperty = arrayData;
// -or-
plugin.callSomeMethod(arrayData);
そのパラメータは、タイプNPVariantType_ObjectのNPVariantとしてあなたNPObjectになります。あなたはその後、lengthプロパティを照会します:
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スレッドで提案されているように、オブジェクトをエミュレートする方法を書く以外の)別のオプションは、DOMのためNPObjectを取得するためにNPN_GetValueを使用することです窓、その後、パラメータなしでそれの「アレイ」を起動します。これは、(NPObject *など)、空のJSのArrayオブジェクトを返します。次に、あなたが最初の(そして唯一の)パラメータとしてアイテムに「プッシュ」を返し、呼び出したい項目を通してだけループます。
ホープ、このことができます。
他のヒント
あなたはNPObject(このスレッドを使用することができますを)ずっとvar arrayOfString={...strings here...}
とJSのオブジェクトと同じように(あなたの文字列のコンテナとして機能します。
所属していません StackOverflow