Windows 10 UWP HTML/Winjs应用程序从共享魅力启动时未接收到激活的事件
Windows 10 UWP HTML/Winjs application not receiving onactivated event when started from the Sharing charm
我目前正在使用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.
}));
当我从Visual Studio 2015/直接在windows手机上调试构建内部启动应用程序时,我会看到控制台日志记录的预期输出。我还可以选择一个PDF文件,并将其共享到我的应用程序,然后它就会启动——但我在VS2015中根本看不到任何控制台输出。我正在寻找console.log(JSON.stringfy(shareOperation,null,4))的输出;
如果在谷歌和微软的网站上查找特定的Windows 10 UWP样本,但找不到任何东西,我只找到了一些信息片段。
当我的应用程序从共享魅力启动时,似乎没有收到激活的事件。
我做错了什么?
我注意到,的if语句
(args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.shareTarget)
当前包含在的if语句中
(args.detail.kind === activation.ActivationKind.launch)
因此,除非您的应用程序执行"启动"操作,否则不会执行"shareTarget"的if语句。
你应该像这样提取出来:
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));
}
这是我做的一个演示,你可以参考:分享目标样本
相关文章:
- 从控制器返回后Ajax启动事件激发
- 触摸启动事件未在iframe iOS 6中启动
- preventDefault之后的重新启动事件
- 如何获取在一系列事件中启动事件的元素
- 当窗口打开时,IE9在加载前启动事件
- 我的 JS 代码中的会话启动事件
- 仅当前一个事件完全完成时,才启动事件
- jQuery UI - 如何区分拖动/调整大小启动事件和单击事件
- Javascript “卡住”键(未注册的键启动事件)
- pace.js:“启动”事件未触发
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 如何将“拖动启动”事件与 CKEditor 实例分离
- 触摸启动事件上的Javascript触发函数
- 绑定到触摸启动事件,导致自动对焦集中在Mobile Safari中的任何单击上
- 触摸启动事件未在原来隐藏的按钮上工作
- 有没有一种方法可以使触摸启动事件不会触发点击事件
- 检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]
- 如何检测浏览器是否支持手势启动事件
- 首先启动事件,然后转到url
- 在IE7中无法捕获鼠标启动事件