Winjs 应用程序中的社交分享

Posted

技术标签:

【中文标题】Winjs 应用程序中的社交分享【英文标题】:Social sharing in Winjs application 【发布时间】:2014-07-04 02:12:55 【问题描述】:

我正在尝试将社交分享功能(facebook、邮件等)添加到我的 winjs 应用程序,但找不到它的内置功能。

在 C#/VB 应用程序中,有 ShareLinkTask,但我在 winjs 中找不到它。应该可以,因为winjs可以访问手机功能。

【问题讨论】:

【参考方案1】:

您必须首先获取当前视图的DataTransferManager 并为datarequested 事件添加一个侦听器。当此事件触发时,您可以指定要共享的数据。

var dataTransferManager =
        Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
dataTransferManager.addEventListener("datarequested", dataRequested);
...
function dataRequested(e) 
    var request = e.request;
    request.data.properties.title = 'a title';
    request.data.setText('Some text');
;

更多关于这个样本here...

要在应用中的任何位置显示共享功能,只需将点击事件的处理程序添加到元素并显示 UI。

document.getElementById("share").addEventListener("click", function () 
    Windows.ApplicationModel.DataTransfer.DataTransferManager.showShareUI();
, false);

您可以在MSDN 找到分享其他内容(如 html)所需的所有信息。

【讨论】:

感谢您的回答和链接!在代码示例形成“code.msdn.microsoft.com/windowsapps/…”时,什么对我帮助最大。【参考方案2】:

我猜你需要使用共享合同,以防你要使用 WinRT 应用程序。由于魅力栏不存在,你可能需要进行编码

Windows.ApplicationModel.DataTransfer.DataTransferManager.showShareUI();

function launchShare() 
    var shareButton = document.createElement("button");
    shareButton.setAttribute("id", "showShareButton");
    shareButton.innerText = "Click to share!";
    shareButton.addEventListener("click", function () 
        Windows.ApplicationModel.DataTransfer.DataTransferManager.showShareUI();
    );
    document.body.appendChild(shareButton);

请参考http://msdn.microsoft.com/en-in/library/windows/apps/hh464923.aspx

【讨论】:

以上是关于Winjs 应用程序中的社交分享的主要内容,如果未能解决你的问题,请参考以下文章

WinJS 中的 System.Text.Encoding

手机上的社交分享

带有用于推送通知的 C# 后台任务的 WinJS 应用程序

原生应用程序中的 HTML5 / JS 社交共享插件或示例?

如何在 winjs 应用程序中创建图像地图热点?

如何在 Kivy 中实现社交分享按钮