For iPhone / iPad (iOS)
Prerequsites
- Install ChildBrowser Phonegap plugin
- Copy FBConnectExample/FBConnect.js into your www folder and include it in your HTML file
- Read and follow the instructions from How to post to the Facebook wall in an iPhone app with phonegap, FaceBook Connect and ChildBrother plugin by MosaCrea
The Javascript(jQuery) code:
$('#share-facebook').live("touchstart touchend", function() {
var url = $(this).attr("rel");
try {
shareonfacebook(" likes Web Development Blog by Ei Sabai.", "https://eisabainyo.net/weblog/wp-content/uploads/2010/11/profile-small.gif", url);
}
catch(err) {
console.log(err);
}
return false;
});
function shareonfacebook(text, image, url) {
var client_id = "xxxxxxxxxxxxx"; // Your Facebook Client ID
var redir_url = "http://www.facebook.com/connect/login_success.html";
if (typeof fbPlugin === 'undefined') {
fbPlugin = FBConnect.install();
}
fbPlugin.connect(client_id, redir_url, "touch");
fbPlugin.onConnect = function() {
window.plugins.fbConnect.postFBWall(text, url, image, function() {
navigator.notification.alert(
'Thank you for sharing on Facebook.',
function() {},
'Thank you',
'OK'
);
});
};
}
For Android
Prerequsites
- Install Facebook for Android Phonegap plugin
- Copy facebook.js into your www folder and include it in your HTML file
The Javascript(jQuery) code:
$('#share-facebook').live("touchstart touchend", function() {
var url = $(this).attr("rel");
try {
shareonfacebook(" likes Web Development Blog by Ei Sabai.", "https://eisabainyo.net/weblog/wp-content/uploads/2010/11/profile-small.gif", url);
}
catch(err) {
console.log(err);
}
return false;
});
function postonfacebook(text, image, url, token) {
$.ajax({
type: 'POST',
url: "https://graph.facebook.com/me/feed",
data: {
message: text,
picture: image,
link: url,
access_token: token,
format: "json"
},
success: function (data) {
navigator.notification.alert(
'Thank you for sharing on Facebook.',
function() {},
'Thank you',
'OK'
);
},
dataType: "json",
timeout: 10000
});
}
function shareonfacebook(text, image, url) {
var client_id = "xxxxxxxxxxxxx"; // Your Facebook Client ID
window.plugins.facebook.authorize(client_id, function(res){
if (res.token !== undefined) {
postonfacebook(text, image, url, res.token)
} else {
// call authorization method
window.plugins.facebook.getAccess(function(res) {
if (res.token !== undefined) {
postonfacebook(text, image, url, res.token)
}
});
}
});
}
Usage (for both iPhone and Android):
<a href="#" rel="https://eisabainyo.net/weblog/" id="share-facebook">Share on Facebook</a>
In Android emulator
I got “generic error occurred” in popoup win after launch the FB plugin. Then if i press OK in dialog it display the logged user FB home page and nothing happens further inside popped win.
Note: I use both a client id and an app id to configure authorize command.
Also i’ve genereted the hash key for the debug view but error i still triggered.
Using a workaround with childbrowser (launch a “proxy” page on remote server that do the job) is the only solution.
Mork