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:[email protected]]
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>.