我的Windows 8应用程序允许在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.
}
});
})();
答案 0 :(得分:1)
当您离开页面时,您需要取消附加“datarequested”事件。这是,当按下后退按钮时:
dtm2.getForCurrentView().removeEventListener("datarequested", this.onDataRequested);