cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mouton (JIRA)" <>
Subject [jira] [Created] (CB-8838) WKWebView iosExec Results in Double Call
Date Thu, 09 Apr 2015 22:13:13 GMT
Thomas Mouton created CB-8838:

             Summary: WKWebView iosExec Results in Double Call
                 Key: CB-8838
             Project: Apache Cordova
          Issue Type: Bug
          Components: CordovaJS, CordovaLib, iOS
    Affects Versions: 4.0.0
            Reporter: Thomas Mouton

When we invoke the cordova Barcode plugin, it is always called twice!

I have only looked at the code a short time, but it appears to me that:

* the first call to Barcode happens, and in iosExec, it gets placed in commandQueue.
* the first call passes to Objective C world by WKScriptMessageHandler - (void)userContentController:(WKUserContentController*)userContentController
* this call to Barcode does its thing, completes, and it's javascript response handler code
winds through:
* in Helper2, the callback is finally passed to a webViewEngine, which processes the Javascript,
and returns, on completion, a list of commands remaining in the javascript commandQueue.
* these commands are queued on the Obj-C side and run in CDVCommandQueue fashion.


* since the command was persisted in commandQueue before execution, and not removed, it is
called again!


I moved the enqueue behavior into the branch that excludes bridgeMode === jsToNativeModes.WK_WEBVIEW_BINDING
This fixes it, but I am not confident its the right solution.

Do you have any insight into this problem?
Feedback for my solution?
A broader or more appropriate venue for the conversation?

Alex Mouton

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message