在C ++ / Plugin中访问Javascript数组?

时间:2012-09-09 04:54:52

标签: javascript plugins npapi firebreath jsctypes

我使用firebreath框架编写了一个NPAPI插件。我能够从Javascript传递简单的数值并在我的(C ++)插件中访问它们,执行操作然后返回结果。我想知道如何对矢量进行操作,即数组。我不想在我的插件中分配新数组并从JavaScript复制数组(虽然我不知道如何做到这一点)。如何直接访问插件中的JavaScript数组?有没有特殊的方法呢?

1 个答案:

答案 0 :(得分:1)

来自Firebreath website

Javascript对象可以与FB :: JSObjectPtr类型一起使用。您可能想要使用的JavaScript对象的示例包括:

  1. Javascript对象(包含方法和/或值成员)
  2. Javascript Arrays(您计划修改;否则您可以使用容器类型)
  3. 回调的Javascript方法
  4. 数组是对象;使用getProperty(n)或getProperty(“length”)等获取值

    您还可以使用 - > invoke(“push”,FB :: variant_list_of(val))等方法

    (在JSAPI方法上,为了使用JSObjectPtr类型,你应该使用类似于的方法:)

    void doSomethingWithAnArray(const FB::JSObjectPtr& array) { ... }
    

    还要记住,FireBreath不能告诉它是什么类型的js对象,只是有一个js对象;你不得不自己进行错误检测,因为它们不会给你一个实际的数组而是一些其他对象。