Now another issue happened.
When using the Facebook Plugin gapdebug gives the following warning in IOS (Works great in Android)
[Warning] Native: deviceready did not fire within 2000ms. This can happen when plugins are in an inconsistent state. Try removing plugins from plugins/ and reinstalling them. (app.bundle.js, line 63888)
And when i go to the Facebook Component, its not working. NOt even logs or something.
import {Page, NavController, Platform} from 'ionic-angular';
import {Facebook} from 'ionic-native';
import {OnInit} from 'angular2/core';
@Page({
templateUrl: 'build/pages/facebook/facebook.html',
})
export class FacebookPage {
feed:Array<any>;
constructor(public nav:NavController, public platform:Platform) {
this.platform = platform;
platform.ready().then(() => {
});
}
ngOnInit() {
console.log("ngOnInit called");
try {
this.fbLogin();
} catch (error) {
console.log("error in cons", error);
}
}
login() {
try {
if (this.platform.is('cordova')) {
return Facebook.login(['email', 'publish_actions']).then(
(success) => {
console.log("facebook login success", success);
return success;
},
(error) => {
console.log("facebook error login", error)
return error;
}
)
}
else {
return Promise.reject("Please run me on a device");
}
} catch (error) {
console.log(error);
return Promise.reject(error);
}
}
validateLogin() {
return Facebook.getLoginStatus().then(
(status) => {
console.log("current status: ", status);
try {
Facebook.showDialog({method: "share"}).then((result) => {
console.log("Posted. ", result);
});
} catch (error) {
console.log(error);
}
return status;
},
(error) => {
console.log("fb status error", error);
return error;
}
);
}
fbLogin() {
this.login().then(
(sucess) => {
this.validateLogin().then(
(success) => {
try {
Facebook.api("/myfeed/feed?fields=id,caption,created_time,description,from,icon,link,message,message_tags,name,object_id,picture,shares,source,story,story_tags,to,type,status_type,admin_creator,full_picture,child_attachments,application,with_tags,likes.limit(1).summary(true),sharedposts,comments.limit(1).summary(true)", ["public_profile"]).then(
(result) => {
console.log("FB Result: ", result);
let results = [];
for (var i = 0; i < result.data.length; i++) {
console.log("fb data=", result.data[i]);
results.push(result.data[i]);
}
this.feed = results;
}, (error) => {
console.error("Failed: ", error);
}
);
} catch (error) {
console.log(error);
}
return success;
},
(error) => {
console.log("after login error", error);
return error;
}
);
},
(error) => {
console.log("error in fb login", error);
}
)
}
}
The Template is simple, just for testing purpose:
<ion-content class="facebook">
<button (click)="fbLogin()">FACEBOOK LOGIN</button>
<ion-list>
<ion-item class="coupons" *ngFor="#fb of feed">
<div *ngIf="!!fb.id" >{{fb.id}}</div>
<div *ngIf="!!fb.message">{{fb.message}}</div>
</ion-item>
</ion-list>
</ion-content>