简体   繁体   中英

Create a JSAPIPtr in javascript side of firebreath

I have a requirement as follows: I wanted to initialize a user-defined class inheriting from FB::JSAPIAuto but I wanted to create it plugin independent..like

In JS , earlier i used to do this::

plugin().CreateJSAPIObject("someParameter");
//in order to initialize the c++ object with a value..It was successfully compiling..

What I want to do is to create a c++ object plugin independent

So in JS>>

UserDefinedJSAPIClassPtr obj=new UserDefinedJSAPIClass();
obj->SetMember1="This is Member 1";
//not necessarily using new keyword
plugin().DoSomethingWithObject(obj);

I came to know of boost::clipp library ..and other numerous frameworks but am finding difficulty...as everything is strongly tied to the root JSAPI.

My doubt>>Is this possible? My objective later on>> PS:: DoSomethingWithObject(FB::variant& object) will get the members of the JSAPI object (set in the JS side) and process them

EDIT after Taxilian's answer:: what in the case of this, In JS side,

 function AnotherJavascriptfunction(member1)
        {
        member1='2';
        }
var UserClass=function(color,settings){}

var userObject=new UserClass('Red',AnotherJavascriptfunction);
 plugin().DoTheChanges(userObject);

In FB side, how do i access member1.? which method should i Look for to get the member of settings

Regards, Pratik

Definitely not possible to create a JSAPIPtr from javascript, but you can create a normal javascript object and pass it into a JSAPI method; it'll be a FB::JSObjectPtr type and you can then call methods/properties on it using Invoke, GetProperty, SetProperty, etc.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM