Class “NativeObject”
Base class for all objects with a native implementation.
Type: | NativeObject extends Object |
Constructor: | protected |
Singleton: | No |
Namespace: | tabris |
Direct subclasses: | App , Camera , Device , FileSystem , InactivityTimer , NavigationBar , Permission , Popup , Printer , StatusBar , Tabris , Widget |
JSX Support: | No |
Methods
off(type, listener, context?)
Removes all occurrences of listener that are bound to type and context from this widget.
In TypeScript you should use the alternative Listeners
API, e.g. widget.onResize.off(listener);
instead of widget.off('resize', listener});
The former provides more type information.
Parameter | Type | Description |
---|---|---|
type | string |
The type of events to remove listeners for. |
listener | Function |
The listener function to remove. |
context | object |
The context of the bound listener to remove. Optional. |
Returns: this
off(listeners)
Removes all listeners in the given object from the event type indicated by their key.
In TypeScript you should use the alternative Listeners
API, e.g. widget.onResize.off(listener);
instead of widget.off({resize: listener});
The former provides more type information.
Parameter | Type | Description |
---|---|---|
listeners | {[eventType]: Function} |
A key-value map where the keys are event types and the values are the listeners to deregister from these events, e.g. {tap: onTap, scroll: onScroll} . |
Returns: this
on(type, listener, context?)
Registers a listener function to be notified of events of the given type.
Parameter | Type | Description |
---|---|---|
type | string |
The type of events to listen for. |
listener | Function |
The listener function to register. This function will be called with an event object. |
In TypeScript you should use the alternative Listeners
API, e.g. widget.onResize(listener);
instead of widget.on({resize: listener});
The former provides more type information.
context | object
| In the listener function, this
will point to this object. If not present, the listener will be called in the context of this object. Optional.
Returns: this
on(listeners)
Registers all listeners in the given object for the event type indicated by their key.
In TypeScript you should use the alternative Listeners
API, e.g. widget.onResize(listener);
instead of widget.on('resize', listener);
The former provides more type information.
Parameter | Type | Description |
---|---|---|
listeners | {[eventType]: Function} |
A key-value map where the keys are event types and the values are the listeners to register for these events, e.g. {tap: onTap, scroll: onScroll} . |
Returns: this
once(type, listener, context?)
Same as on
, but removes the listener after it has been invoked by an event.
In TypeScript you should use the alternative Listeners
API, e.g. widget.onResize.once(listener);
instead of widget.once('resize', listener);
The former provides more type information.
Parameter | Type | Description |
---|---|---|
type | string |
The type of the event to listen for. |
listener | Function |
The listener function to register. This function will be called with an event object. |
context | object |
In the listener function, this will point to this object. If not present, the listener will be called in the context of this object. Optional. |
Returns: this
once(listeners)
Same as on
, but removes the listener after it has been invoked by an event.
In TypeScript you should use the alternative Listeners
API, e.g. widget.onResize.once(listener);
instead of widget.once({resize: listener});
The former provides more type information.
Parameter | Type | Description |
---|---|---|
listeners | {[eventType]: Function} |
A key-value map where the keys are event types and the values are the listeners to register for these events, e.g. {tap: onTap, scroll: onScroll} . |
Returns: this
set(properties)
Sets all key-value pairs in the properties object as widget properties.
TypeScript note: When called on this
from within a subclass constructor (i.e. a custom component/widget) you may have to use the generic version of this method: this.set<MySubclass>(...);
Parameter | Type | Description |
---|---|---|
properties | Properties<this> |
Returns: this
trigger(type)
Notifies all registered listeners for the given type.
In TypeScript you should use the alternative Listeners
API, e.g. widget.myEvent.trigger();
instead of widget.trigger('myEvent');
The former provides more type information.
Parameter | Type | Description |
---|---|---|
type | string |
The type of event to trigger |
Returns: this
trigger(type, eventData)
Passes the fields of the given object to all listeners registered for this event type.
In TypeScript you should use the alternative Listeners
API, e.g. widget.myEvent.trigger(eventData);
instead of widget.trigger('myEvent', eventData});
The former provides more type information.
Parameter | Type | Description |
---|---|---|
type | string |
The type of event to trigger |
eventData | object |
The data to pass to listener functions. |
Returns: this
trigger(type, eventObject)
Initializes the given eventObject and passes it to all listeners registered for this event type. If eventObject was already initialized its fields are copied to a new event object.
In TypeScript you should use the alternative Listeners
API, e.g. widget.myEvent.trigger(eventObject);
instead of widget.trigger('myEvent', eventObject});
The former provides more type information.
Parameter | Type | Description |
---|---|---|
type | string |
The type of event to trigger |
eventObject | EventObject |
An instance of EventObject (or a subclass) to pass to listener functions. |
Returns: this
triggerAsync(type)
Like trigger
, but returns a promise. The promise will resolve when all asynchronous listeners (if any) have resolved. If none of the listeners are asynchronous (return a promise) this method works just like trigger()
. Useful for unit testing.
Parameter | Type | Description |
---|---|---|
type | string |
The type of event to trigger |
Returns: Promise
triggerAsync(type, object)
Notifies all registered listeners for the given type with the given data. Unlike trigger
each asynchronous listener will be awaited, meaning that if a listener returns a promise that will pause event processing until it resolves. Returns a promise that resolves once all listeners have been notified. If any listener returns a rejecting promise the even processing is aborted and the returned promise rejects with the error value. If none of the listeners return a promise this method works just like trigger()
.
In TypeScript you should use widget.myEvent.triggerAsync();
instead
Parameter | Type | Description |
---|---|---|
type | string |
The type of event to trigger |
object | object |
The data to pass to listener functions. |
Returns: Promise
triggerAsync(type, eventObject)
Notifies all registered listeners for the given type with the given EventObject
. Unlike trigger
each asynchronous listener will be awaited, meaning that if a listener returns a promise that will pause event processing until it resolves. Returns a promise that resolves once all listeners have been notified. If any listener returns a rejecting promise the even processing is aborted and the returned promise rejects with the error value. If none of the listeners return a promise this method works just like trigger()
.
In TypeScript you should use widget.myEvent.triggerAsync();
instead
Parameter | Type | Description |
---|---|---|
type | string |
The type of event to trigger |
eventObject | EventObject |
An instance of EventObject (or a subclass) to pass to listener functions. |
Returns: Promise
Protected Methods
These methods are accessible only in classes extending NativeObject
.
_checkDisposed()
A helper function that throws if the instance has already been marked as disposed.
Returns: undefined
_dispose(skipNative?)
Called by the framework to dispose a NativeObject
instance. (The dispose
is only used by application code.) The method should never be called directly, but it may be overwritten to prevent dispose for objects that are not disposable.
Parameter | Type | Description |
---|---|---|
skipNative | boolean |
Optional. |
Returns: undefined
_getStoredProperty(propertyName)
Returns a value stored via _storeProperty
, or undefined.
Parameter | Type | Description |
---|---|---|
propertyName | string |
Returns: unknown
_getXMLAttributes()
Used by console.dirxml()
to produce part of the XML representation of this object. May be overwritten to modify the output. The return value should be an array of tuples consisting of the attribute name and string representation. The new implementation may make a super call to obtain the default list of attributes printed for this object.
_getXMLContent()
Used by console.dirxml()
to produce part of the XML representation of this object. May be overwritten to modify the output. The return value should be an array of strings each representing on of the children of this instance.
Returns: string[]
_getXMLElementName()
Used by console.dirxml()
to produce part of the XML representation of this object. May be overwritten to modify the output. The default implementation returns the name of the constructor of this object.
Returns: string
_getXMLFooter(hasChild)
Used by console.dirxml()
to produce part of the XML representation of this object. May be overwritten to modify the output. The default implementation the closing tag if hasChild
is true, otherwise returns an empty string. The hasChild
parameter is true
if _getXMLContent
returns a non-empty array. It is usually not necessary to call or override this method.
Parameter | Type | Description |
---|---|---|
hasChild | boolean |
Returns: string
_getXMLHeader(hasChild)
Used by console.dirxml()
to produce part of the XML representation of this object. May be overwritten to modify the output. The default implementation crates the opening tag including the element name given by _getXMLElementName
and attributes given by _getXMLAttributes
. The hasChild
parameter is true
if _getXMLContent
returns a non-empty array in which case the tag is not self-closing. It is preferable to override these individual method instead of this one.
Parameter | Type | Description |
---|---|---|
hasChild | boolean |
Returns: string
_isListening(eventType)
Returns true
if there is currently one or more listeners registers for the given event type.
Parameter | Type | Description |
---|---|---|
eventType | string |
Returns: boolean
_listen(eventName, listening)
Called by the framework when the first listener of a given event type is registered on the instance (listening
is true
), and when the last listener of a given event type is removed (listening
is false
). Typically overwritten to make calls to _nativeListen
when the given event type is issues by native code. The new implementation must make a super call if it does not handle the given event type itself.
Parameter | Type | Description |
---|---|---|
eventName | string |
|
listening | boolean |
Returns: undefined
_nativeCall(methodName, parameters)
Sends a ‘call’ operation to the native client and returns the result.
Parameter | Type | Description |
---|---|---|
methodName | string |
|
parameters | object |
Returns: unknown
_nativeCreate(param?)
Sends a ‘create’ operation to the native client. Called once by the constructor and should not be called again. May be overwritten to check the constructor parameter or perform any kind of initialization code prior to creating the native object. The new implementation must make a super call.
Parameter | Type | Description |
---|---|---|
param | {[property]: any} |
The first argument (if any) given in the constructor call. Will be forwarded to the set method after the native object was created. Optional. |
Returns: undefined
_nativeGet(propertyName)
Sends a ‘get’ operation to the native client and returns the result.
Parameter | Type | Description |
---|---|---|
propertyName | string |
Returns: unknown
_nativeListen(eventType)
Sends a ‘listen’ operation to the native client.
Parameter | Type | Description |
---|---|---|
eventType | string |
Returns: undefined
_nativeSet(propertyName, value)
Sends a ‘set’ operation to the native client.
Parameter | Type | Description |
---|---|---|
propertyName | string |
|
value | any |
Returns: undefined
_onoff(eventType, listening, listener)
A helper function that register the given listener if listening
is true and de-registers it if listening
is false.
Parameter | Type | Description |
---|---|---|
eventType | string |
|
listening | boolean |
|
listener | Function |
Returns: undefined
_release()
Called during the dispose process, after the ‘dispose’ event has fired, but before the native code has be executed. Native operations (_nativeSet
, _nativeGet
, _nativeCall
, _nativeListen
) on this object are still possible at this point. May be overwritten to perform any kind of clean-up code. The new implementation must perform a super call at some point, typically at the last command.
Returns: undefined
_reorderProperties(propertyNames)
Used by the set
method to determined in which order the given property values are applied. May be overwritten, but the new implementation must pass the propertyNames through a super call at one point.
Parameter | Type | Description |
---|---|---|
propertyNames | string[] |
List of properties to be set to a new value |
Returns: string[]
_storeProperty(propertyName, encodedValue)
Stores the given value internally and triggers a matching change event.
Parameter | Type | Description |
---|---|---|
propertyName | string |
|
encodedValue | any |
Returns: undefined
_trigger(eventType, eventData?)
Called by the native client to trigger a JavaScript event on this instance. May be overwritten to pre-process the eventData object. The return value indicates whether defaultPrevented
on the event object was set to true
. The new implementation must forward the parameters to a super call and return that calls return value.
Parameter | Type | Description |
---|---|---|
eventType | string |
|
eventData | object |
Optional. |
Returns: boolean
_wasSet(propertyName)
Returns true
if _storeProperty was ever called with the given property propertyName
Parameter | Type | Description |
---|---|---|
propertyName | string |
Returns: boolean
Properties
cid
An application-wide unique identifier automatically assigned to all native objects on creation. It follows the pattern ‘$
Type: | string |
Settable: | No |
Change Event: | Not supported |
This property can only be set via constructor. Once set, it cannot change anymore.
jsxAttributes
When using JSX with TypeScript (.tsx
files), the type of this property determines which JSX attributes are valid for this object.
Type: | JSXAttributes |
Settable: | No |
Change Event: | Not supported |
This property can only be set via constructor. Once set, it cannot change anymore.
Protected Properties
These properties are accessible only in classes extending NativeObject
.
_isDisposed
Type: | true | undefined |
Settable: | Yes |
Change Event: | Not supported |
_nativeType
Type: | string |
Settable: | No |
Change Event: | Not supported |