我的Windows8应用程序允许在1个页面(高分页面)上共享,这很好用,但由于共享代码只在高分页面上,应用程序显示“此应用程序不能共享”。当用户尝试在高分页面以外的页面上共享时。
它应该说“现在没有什么可分享的。”为了修复这个问题,我在主页上添加了共享代码,这修复了这个问题,但破坏了高分页面上的共享,我得到了这个错误"0x8000000e - JavaScript运行时错误:在意外的时间调用了一个方法“。
我的主页JavaScript代码是:
(function () {
"use strict";
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var storage = Windows.Storage;
var dtm2 = Windows.ApplicationModel.DataTransfer.DataTransferManager;
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WinJS.UI.Pages.define("/pages/home/home.html", {
// This function is called whenever a user navigates to this page. It
// populates the page elements with the app's data.
ready: function (element, options) {
// TODO: Initialize the page here.
// Initialize everything
initialize();
// Button listeners
var add = document.getElementById("add");
add.addEventListener("click", this.linkClickEventHandler, false);
var sub = document.getElementById("sub");
sub.addEventListener("click", this.linkClickEventHandler, false);
var mul = document.getElementById("mul");
mul.addEventListener("click", this.linkClickEventHandler, false);
var div = document.getElementById("div");
div.addEventListener("click", this.linkClickEventHandler, false);
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
dtm2.getForCurrentView().addEventListener("datarequested", this.onDataRequested);
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
},
linkClickEventHandler: function (eventInfo) {
ope = this.id;
var link = "/pages/quiz/quiz.html";
WinJS.Navigation.navigate(link);
},
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
onDataRequested: function (e) {
},
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unload: function () {
// TODO: Respond to navigations away from this page.
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WinJS.Navigation.removeEventListener("datarequested", this.onDataRequested);
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
},
});
})();我的高分页面的JavaScript代码是:
// For an introduction to the Page Control template, see the following documentation:
// http://go.microsoft.com/fwlink/?LinkId=232511
(function () {
"use strict";
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var storage = Windows.Storage;
var dtm = Windows.ApplicationModel.DataTransfer.DataTransferManager;
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WinJS.UI.Pages.define("/pages/results/results.html", {
// This function is called whenever a user navigates to this page. It
// populates the page elements with the app's data.
ready: function (element, options) {
// TODO: Initialize the page here.
// Show results
showResults();
// Button listeners
var btnHome = document.getElementById("btnHome");
btnHome.addEventListener("click", this.linkClickEventHandler, false);
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
dtm.getForCurrentView().addEventListener("datarequested", this.onDataRequested);
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
},
linkClickEventHandler: function (eventInfo) {
var link = "/pages/home/home.html";
WinJS.Navigation.navigate(link);
},
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
onDataRequested: function (e) {
var request = e.request;
request.data.properties.title = "Your Simple Math Results";
var message = shareLine1 + " ";
message += shareLine2 + " ";
message += shareLine3;
request.data.setText(message);
},
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unload: function () {
// TODO: Respond to navigations away from this page.
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
WinJS.Navigation.removeEventListener("datarequested", this.onDataRequested);
// SHARING //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
},
updateLayout: function (element, viewState, lastViewState) {
/// <param name="element" domElement="true" />
// TODO: Respond to changes in viewState.
}
});
})();发布于 2012-12-06 08:34:49
当您导航到页面之外时,需要取消附加"datarequested“事件。这是在按下后退按钮时:
dtm2.getForCurrentView().removeEventListener("datarequested", this.onDataRequested);https://stackoverflow.com/questions/13734322
复制相似问题