首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 8 JavaScript分享魅力--“这个应用不能分享。”

Windows 8 JavaScript分享魅力--“这个应用不能分享。”
EN

Stack Overflow用户
提问于 2012-12-06 07:19:57
回答 1查看 676关注 0票数 0

我的Windows8应用程序允许在1个页面(高分页面)上共享,这很好用,但由于共享代码只在高分页面上,应用程序显示“此应用程序不能共享”。当用户尝试在高分页面以外的页面上共享时。

它应该说“现在没有什么可分享的。”为了修复这个问题,我在主页上添加了共享代码,这修复了这个问题,但破坏了高分页面上的共享,我得到了这个错误"0x8000000e - JavaScript运行时错误:在意外的时间调用了一个方法“。

我的主页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代码是:

代码语言: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.
        }
    });
})();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 08:34:49

当您导航到页面之外时,需要取消附加"datarequested“事件。这是在按下后退按钮时:

代码语言:javascript
复制
dtm2.getForCurrentView().removeEventListener("datarequested", this.onDataRequested);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13734322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档