There are choices of cordova Facebook login plugins available, but I found two useful at the time I'm developing my Cordova mobile app.
Those are:
-
phonegap-facebook-plugin
-
cordova-plugin-facebook4
phonegap-facebook-plugin is mostly recommended by the internet community at the time I am writing this, as example
ngCordova - Facebook,
but it caused some UX and development issues to me as a developer.
phonegap-facebook-plugin
It uses FacebookSDK version 3.21.1, with this SDK, for iOS 9, it leads to problems like:
- must not have bitcode enabled (activated by default in xcode 7)
- requires manually add whitelist Facebook access every time you have your iOS platform created
- Every login will leave a blank safari browser opened for Facebook browser login (unless user has native Facebook app installed)
- Symlink of FacebookSDK is broken with direct cordova plugin add phonegap-facebook-plugin
cordova-plugin-facebook4
The purpose this plugin is to make use of FacebookSDK 4.
- It helps saving the drudgery on adding LSApplicationQueriesSchemes and NSSApplicationTransportSecurity items.
- support bitcode encoded, so you don't need to deactivate it every rebuild of the cordova platform.
- Time saving on git cloning to workaround broken FacebookSDK symlink.
Added 2015-11-13 10:55 PM
the only bad thing about
cordova-plugin-facebook4
there is different between plugin cloned by cordova added through new platform build (cordova platform add ios/android
) with the one manually added with cordova cli (cordova plugin add
).
Differences:
# |
Cloned with platform add |
Plugin added with cordova cli |
1 |
Need manual add of
LSApplicationQueriesSchemes |
Auto added |
2 |
Bitcode_enabled to be disabled |
support bitcode_enabled |
3 |
Facebook login with
safari browser |
Do not need external browser
for Facebook login |
Even though both cordova cloned with platform and cli are the same cordova-plugin-facebook4,
but at the time I developing,
it does has differences as your installation method is different.
Furthermore,
if you already have
cordova-plugin-facebook4 saved into config.xml,
running
cordova plugin add cordova-plugin-facebook4 (with variables) again will update itself into a different version plugin.
my case:
<plugin name="cordova-plugin-facebook4" spec="~1.3.0-0">
<variable name="APP_ID" value="FB_APP_ID" />
<variable name="APP_NAME" value="FB_APP_NAME" />
</plugin>
run
cordova plugin add cordova-plugin-facebook4 --save (with variables) again, will become:
<plugin name="cordova-plugin-facebook4" spec="~1.1.0">
<variable name="APP_ID" value="FB_APP_ID" />
<variable name="APP_NAME" value="FB_APP_NAME" />
</plugin>