[ 
https://issues.apache.org/jira/browse/CB-10653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15341800#comment-15341800
 ] 

ASF GitHub Bot commented on CB-10653:
-------------------------------------

Github user afourney commented on the issue:

    https://github.com/apache/cordova-windows/pull/173
  
    The object is cloned because some of its fields appear only to be available 
when inside the event handler. By the time one's Cordova script can access 
platform.activationContext, important details are lost (i.e., the 
activationContext would otherwise change underfoot).
    
    @cnsdato 
    Clearly cloning failing is a problem and will need to be addressed. Also, 
clearly the original code (that only saved the command line arguments) would 
not serve your purpose.  Have you tested if you are able to do what you need if 
clone is removed? .



> Universal Windows Platform -- activationContext is incomplete
> -------------------------------------------------------------
>
>                 Key: CB-10653
>                 URL: https://issues.apache.org/jira/browse/CB-10653
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: Windows
>         Environment: Windows 10, Windows 10 Phone
>            Reporter: Adam Fourney
>            Assignee: Raghav Katyal
>            Priority: Minor
>              Labels: easyfix
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> CB-8674 modified cordova-js-src/platform.js to capture the application's 
> onactivated event, and record the details in the platform.activationContext 
> instance. 
> Unfortunately, CB-8674 covers only a few of the 12 types of UWP activation 
> events. As an example, if an app is activated by a Cortana voice command, the 
> details are missed. See here for more details: 
> https://msdn.microsoft.com/en-us/library/windows/apps/br212679.aspx
> The proposed fix is to change:
> var activationHandler = function (e) {
>        var args = e.detail.arguments;
>        var actType = e.detail.type;
>        platform.activationContext = { type: actType, args: args };
>        cordova.fireDocumentEvent('activated', platform.activationContext, 
> true);
> };
> To be: 
>             var activationHandler = function (e) {
>                 platform.activationContext = utils.clone(e.detail);
>                 platform.activationContext.args = e.detail.arguments; // 
> Backwards compatibility
>                 cordova.fireDocumentEvent('activated', 
> platform.activationContext, true);
>             };
> This also means that platform.js should require("cordova/utils")



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to