Yep, definitely sounds the same issue I was experiencing.

Although I am not sure whether to put onload=true in plugin.xml really is the 
right solution in general.
If you want your app to be started on the first tap it is the only solution.
If you open your app then you can call some method of phonegap-nfc and the 
plugin is initialized and you do not have this problem.
A plugin that needs to react to intent filters on Android needs onload=true.
A plugin that needs to react to e.g. a file being opened on IOS needs 
onload=true because the plugin needs to register itself for this event.

This not related to phonegap-nfc only. All plugins that need OS-Events 
currently need onload=true.

But what Cordova is missing is a way for a plugin to express this: I want to 
get OS-Events (like onNewIntent on Android) but I do not need to be loaded on 
startup.

Each line in PluginManager.java like this “if (entry.plugin != null) {”
https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/PluginManager.java#L307
currently prevents an OS-Event to be propagated to a plugin.
The only way to get the event is to set “onload=true” or use a plugin method 
(thus creating a plugin instance).

But if the plugin only needs to get events after the app is started (like e.g. 
reading an NFC tag through the app) then creating the plugin instance is 
wasting startup time and memory resources.

I suggest to have
 <feature…>
   <param name=”osevents” value=”true” />


and change all the line in PluginManager from

                    “if (entry.plugin != null) {”

 to

                    “if (entry.plugin != null || (entry.osevent==true && 
entry.createPlugin(this.app, this.ctx)!=null)) {”

Changing
https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/PluginEntry.java
and the parser in PluginManager is simple…
https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/PluginManager.java#L147

Although this new osevent param would need support in all platforms and docs 
and tests. Not a half-hour project…

Have fun
Axel


From: Don Coleman [mailto:notificati...@github.com]
Sent: Saturday, November 16, 2013 5:37 PM
To: chariotsolutions/phonegap-nfc
Cc: AxelNennker
Subject: [phonegap-nfc] Add onload for android (#105)


See @AxelNennker<https://github.com/AxelNennker> doc updates 
https://github.com/apache/cordova-docs/pull/154/files

Might fix #99<https://github.com/chariotsolutions/phonegap-nfc/issues/99>?

—
Reply to this email directly or view it on 
GitHub<https://github.com/chariotsolutions/phonegap-nfc/issues/105>.

Reply via email to