Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-8661

executeScript doesn't return the a result on Windows platform

VotersWatch issueWatchersLinkUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • None
    • Windows 8
      Latest version of Cordova 4.3.0
      Latest version of Plugin InAppBrowser 0.6.0

    Description

      executeScript is supposed to provide a variable to the function called when the script is completed as per this clip from the documentation :-
      If the injected script is of type code, the callback executes with a single parameter, which is the return value of the script, wrapped in an Array. For multi-line scripts, this is the return value of the last statement, or the last expression evaluated.

      When running as a Windows app the array is empty.
      Looking in the Windows InAppBrowserProxy.js file, line 230 looks like this
      op.oncomplete = function ()

      { hasCallback && win([]); }

      ;
      So clearly no data is being passed ([]) is an empty array.
      According to the documentation from Microsoft :-
      https://msdn.microsoft.com/en-us/library/windows.ui.xaml.controls.webview.invokescriptasync.aspx

      The invokeScriptAsync function can return a string.
      So if I modify line 230 to look like this
      op.oncomplete = function (e)

      { hasCallback && win([e.target.result]); }

      ;
      I get a string returned to my callback function.
      You could also modify the similar line in the injectScriptFile function, as it also calls invokeScriptAsync.

      I need the return value because the only way to comunicate between the page in the IAB and the app is to poll some sessionStorage and wait for the page to set some data.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            vladimir.kotikov Vladimir Kotikov
            jml John Little
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment