[
https://issues.apache.org/jira/browse/CB-1161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13424891#comment-13424891
]
Olivier Louvignes commented on CB-1161:
---------------------------------------
After more testing with legacy 1.8.1 I can confirm that this worked before :
{code:java}
final FacebookConnect me = this;
this.authorizeDialogListener = new
AuthorizeDialogListener(me, callbackId);
this.ctx.setActivityResultCallback(this);
Runnable runnable = new Runnable() {
public void run() {
me.getFacebook().authorize((Activity)me.ctx, permissions,
me.authorizeDialogListener);
};
};
this.ctx.runOnUiThread(runnable);
{code}
So somehow this is an issue about how this.ctx has turned to this.cordova in
1.9+
> Javascript callbacks are broken after using runOnUIThread() with Facebook SSO
> -----------------------------------------------------------------------------
>
> Key: CB-1161
> URL: https://issues.apache.org/jira/browse/CB-1161
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 2.0.0
> Reporter: Olivier Louvignes
> Assignee: Joe Bowser
> Labels: android, plugin
>
> I've been working on a alternative post-2.0 FacebookConnect plugin that would
> not require the javascript SDK (check there :
> https://github.com/mgcrea/cordova-facebook-connect). But I'm stuck after the
> AuthorizeDialog returns, calls to success() or sendJavascript() does not work
> anymore.
> So I'm not sure if I just missed something or if something broke in 1.9 / 2.0
> on this.
> The source code can be found there :
> https://github.com/mgcrea/cordova-facebook-connect/blob/master/Android/src/org/apache/cordova/plugins/FacebookConnect.java
> You can check the login function where the JS call is made :
> {code:java}
> final FacebookConnect me = this;
> this.authorizeDialogListener = new
> AuthorizeDialogListener(me, callbackId);
> this.cordova.setActivityResultCallback(this);
> Runnable runnable = new Runnable() {
> public void run() {
>
> me.getFacebook().authorize(me.cordova.getActivity(), permissions,
> me.authorizeDialogListener);
> };
> };
> this.cordova.getActivity().runOnUiThread(runnable);
> {code}
> When onActivityResult returns, JS is off :(
> {code:java}
> @Override
> public void onActivityResult(int requestCode, int resultCode, Intent
> data) {
> super.onActivityResult(requestCode, resultCode, data);
> this.getFacebook().authorizeCallback(requestCode, resultCode,
> data);
> //this.webView.sendJavascript("window.alert('test')"); //@todo
> not working :(
> }
> {code}
> Would love to get some feedback on this as I'm clearly not goog enough in
> Java dev to fully understand what happens there.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira