You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Olivier Louvignes (JIRA)" <ji...@apache.org> on 2012/07/30 16:50:33 UTC

[jira] [Updated] (CB-1161) Javascript callbacks are broken in 1.9/2.0 after using runOnUIThread() (ie. Facebook SSO)

     [ https://issues.apache.org/jira/browse/CB-1161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Olivier Louvignes updated CB-1161:
----------------------------------

    Summary: Javascript callbacks are broken in 1.9/2.0 after using runOnUIThread() (ie. Facebook SSO)  (was: Javascript callbacks are broken after using runOnUIThread() with Facebook SSO)
    
> Javascript callbacks are broken in 1.9/2.0 after using runOnUIThread() (ie. 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