You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Andreas Imhof (JIRA)" <ji...@apache.org> on 2014/09/09 17:52:28 UTC
[jira] [Updated] (CB-7500) executeScript with callback kills/blurs
inAppBrowser window after callback exit
[ https://issues.apache.org/jira/browse/CB-7500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andreas Imhof updated CB-7500:
------------------------------
Description:
Calling Javascript executeScript (inAppBrowser.js) WITH a callback into an inAppBrowser window kills/blurs this IAB window after the callback exits. Something like this also is mentioned in the author's comment in method 'injectDeferredObject' in 'inAppBrowser.java' on line 254.
After inverstigating, I accidentally found a work-around/solution which helped on my Android 4.4.2 Samsung Galagy Tab S.
SOLUTION:
In 'inAppBrowser.java' on line 162:
jsWrapper = String.format("prompt(JSON.stringify([eval(%%s)]), 'gap-iab://%s')", callbackContext.getCallbackId());
the 'prompt' statement should be assigned to a variable like:
jsWrapper = String.format("var r=prompt(JSON.stringify([eval(%%s)]), 'gap-iab://%s')", callbackContext.getCallbackId());
Adding 'var r=' prevents from InAppBrowser window being killed.
Don't know why. Tell me... :-)
was:
Calling Javascript executeScript (inAppBrowser.js) WITH a callback into an inAppBrowser window kills/blurs this IAB window after the callback exits. Somethink like this also is mentioned in the author's comment in method 'injectDeferredObject' in 'inAppBrowser.java' on line 254.
After inverstigating, I accidentally found a work-around/solution which helped on my Android 4.4.2 Samsung Galagy Tab S.
SOLUTION:
In 'inAppBrowser.java' on line 162:
jsWrapper = String.format("prompt(JSON.stringify([eval(%%s)]), 'gap-iab://%s')", callbackContext.getCallbackId());
the 'prompt' statement should be assigned to a variable like:
jsWrapper = String.format("var r=prompt(JSON.stringify([eval(%%s)]), 'gap-iab://%s')", callbackContext.getCallbackId());
Adding 'var r=' prevents from InAppBrowser window being killed.
Don't know why. Tell me... :-)
> executeScript with callback kills/blurs inAppBrowser window after callback exit
> -------------------------------------------------------------------------------
>
> Key: CB-7500
> URL: https://issues.apache.org/jira/browse/CB-7500
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 3.5.0
> Environment: Android 4.4.2 Samsung Galaxy Tab S
> Reporter: Andreas Imhof
> Labels: patch
> Original Estimate: 20m
> Remaining Estimate: 20m
>
> Calling Javascript executeScript (inAppBrowser.js) WITH a callback into an inAppBrowser window kills/blurs this IAB window after the callback exits. Something like this also is mentioned in the author's comment in method 'injectDeferredObject' in 'inAppBrowser.java' on line 254.
> After inverstigating, I accidentally found a work-around/solution which helped on my Android 4.4.2 Samsung Galagy Tab S.
> SOLUTION:
> In 'inAppBrowser.java' on line 162:
> jsWrapper = String.format("prompt(JSON.stringify([eval(%%s)]), 'gap-iab://%s')", callbackContext.getCallbackId());
> the 'prompt' statement should be assigned to a variable like:
> jsWrapper = String.format("var r=prompt(JSON.stringify([eval(%%s)]), 'gap-iab://%s')", callbackContext.getCallbackId());
> Adding 'var r=' prevents from InAppBrowser window being killed.
> Don't know why. Tell me... :-)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)