Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从共享服务器启动时,Windows 10 UWP HTML/Winjs应用程序未接收到激活的事件_Javascript_Win Universal App_Windows 10_Winjs - Fatal编程技术网

Javascript 从共享服务器启动时,Windows 10 UWP HTML/Winjs应用程序未接收到激活的事件

Javascript 从共享服务器启动时,Windows 10 UWP HTML/Winjs应用程序未接收到激活的事件,javascript,win-universal-app,windows-10,winjs,Javascript,Win Universal App,Windows 10,Winjs,我目前正在使用HTML5/WinJS技术开发一个Windows10UWP。我希望该应用程序成为PDF的共享目标。我已经把它包括在舱单上了 <Extensions> <uap:Extension Category="windows.shareTarget"> <uap:ShareTarget Description="Test Share Target"> <uap:SupportedFileTypes>

我目前正在使用HTML5/WinJS技术开发一个Windows10UWP。我希望该应用程序成为PDF的共享目标。我已经把它包括在舱单上了

  <Extensions> 
    <uap:Extension Category="windows.shareTarget"> 
      <uap:ShareTarget Description="Test Share Target"> 
        <uap:SupportedFileTypes> 
          <uap:FileType>.pdf</uap:FileType> 
        </uap:SupportedFileTypes> 
      </uap:ShareTarget> 
    </uap:Extension> 
  </Extensions> 
当我直接在windows phone上从Visual Studio 2015/debugging build内部启动应用程序时,我看到了控制台日志记录的预期输出。我还可以选择一个PDF文件,并将其共享到我的应用程序,然后它就会启动——但我在VS2015中根本看不到任何控制台输出。我正在寻找console.log(JSON.stringify(shareOperation,null,4))的输出

如果在谷歌和微软的网站上查找特定的Windows10UWP样本,但什么也找不到,我只找到了信息的片段

当我的应用程序从共享模式启动时,似乎没有收到onactivated事件


我做错了什么

我注意到,您的if声明

(args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget)
当前包含在的if语句中

(args.detail.kind === activation.ActivationKind.launch)
因此,除非您的应用程序执行“启动”操作,否则不会执行您的if语句“shareTarget”

你应该像这样把它提取出来:

if (args.detail.kind === activation.ActivationKind.launch) {
        console.log("launch");
        if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
            // TODO: This application has been newly launched. Initialize your application here. 
            console.log("newly launched");
        }
} else if(args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget) {
        var shareOperation = args.detail.shareOperation;
        console.log(JSON.stringify(shareOperation, null, 4));
}

这是我制作的一个演示,您可以参考:

我注意到,您的if声明

(args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget)
当前包含在的if语句中

(args.detail.kind === activation.ActivationKind.launch)
因此,除非您的应用程序执行“启动”操作,否则不会执行您的if语句“shareTarget”

你应该像这样把它提取出来:

if (args.detail.kind === activation.ActivationKind.launch) {
        console.log("launch");
        if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
            // TODO: This application has been newly launched. Initialize your application here. 
            console.log("newly launched");
        }
} else if(args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget) {
        var shareOperation = args.detail.shareOperation;
        console.log(JSON.stringify(shareOperation, null, 4));
}
以下是我制作的演示,您可以参考: