[
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]