我目前正在开发使用HTML5 / WinJS技术的Windows 10 UWP。我希望该应用程序成为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>
我在index.js
中有这个 var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
app.onactivated = function (args) {
console.log("app.onactivated");
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));
} else
{
// TODO: This application has been reactivated from suspension.
// Restore application state here.
}
args.setPromise(WinJS.UI.processAll().then(function() {
// TODO: Your code here.
}));
当我直接在Windows Phone上从Visual Studio 2015 /调试版内部启动应用程序时,我看到了控制台日志记录的预期输出。我也可以选择一个PDF文件,并将其分享到我的应用程序,然后启动 - 但我看不到任何控制台输出完全反映在VS2015中。我正在寻找console.log的输出(JSON.stringify(shareOperation,null,4));
如果在谷歌和微软的网站上查看特定的Windows 10 UWP样本,但找不到任何内容,我只发现了一些信息片段。
从“共享”超级按钮启动时,我的应用程序似乎没有收到onactivated事件。
我做错了什么?
答案 0 :(得分:2)
我注意到了你的if语句
(args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget)
目前包含在
的if语句中(args.detail.kind === activation.ActivationKind.launch)
所以你的if-statement是&#39; shareTarget&#39;除非发布&#39;否则不会被执行。你的应用的行动。
你应该把它解压缩出来:
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));
}
以下是我制作的演示版,您可以参考:Share Target Sample