从WindowsPhone8共享我正在开发WindowsPhone8应用程序并尝试通过DataTransferManager共享内容。WindowsAPI文档说WindowsPhone支持它,但是当调用DataTransferManager.GetForCurrentView()函数时,我得到一个异常System.NotSupportedExceptionwasunhandledbyusercodeHResult=-2146233067Message=Specifiedmethodisnotsupported。Source=WindowsInnerException:我一直在寻找答案,但找不到其他有同样问题的人,我们将不胜感激。有关此主题的所有示例似乎都是特定于Windows8的,但Phone8确实包含这些功能。这是我的应用程序中的示例代码。protectedoverridevoidOnNavigatedTo(System.Windows.Navigation.NavigationEventArgse){DataTransferManagerdataTransferManager=DataTransferManager.GetForCurrentView();dataTransferManager.DataRequested+=newTypedEventHandler(dataTransferManager_DataRequested);}privatevoiddataTransferManager_DataRequested(DataTransferManagersender,DataRequestedEventArgse){DataPackagerequestData=e.Request.Data;requestData.Properties.Title="分享文本示例";requestData.Properties.Description="一个如何分享文本的例子。";requestData.SetText("HelloWorld!");}privatevoidButton_Tap_1(objectsender,System.Windows.Input.GestureEventArgse){DataTransferManager.ShowShareUI();此外,当页面加载到DataTransferManager.GetForCurrentView()时;异常显示在DataTransferManager.GetForCurrentView();函数,因此它不会到达其他行,但无论如何都包含它们。我试过添加/删除权限和程序集,但肯定遗漏了一些东西。我还尝试将函数放在不同的事件中(如onTap函数),结果相同。如果有人有兴趣自己尝试这个,这里有一些文档:DataTransferManagerDataRequestedDataPackageGetForCurrentView()UPDATE虽然考虑到这个问题的上下文,它可能不是最好的解决方案,但我正在执行电子邮件/短信/链接任务,如下所述,而不是使用DataTransferManager。似乎DataTransferManager在WP8中可能无法访问,虽然任务将采用许多不同的功能,但它们似乎是执行预期功能的最佳方式。我想我已经通过启动器找到了大部分我正在寻找的东西......我可以不只是使用Windows8通用共享功能,而是特定于任务/启动器。不幸的是,它没有Charm那样多的共享选项,我将为电子邮件/短信/社交实现一些功能,但这是迄今为止最好的解决方案。下面是函数privatevoidShareLink(objectsender,System.Windows.Input.GestureEventArgse){ShareLinkTaskshareLinkTask=newShareLinkTask(){Title="CodeSamples",LinkUri=newUri("http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff431744(v=vs.92).aspx",UriKind.Absolute),Message="这里有一些很棒的WindowsPhone代码示例。"};共享链接任务。展示();}privatevoidShareEmail(objectsender,System.Windows.Input.GestureEventArgse){EmailComposeTaskemailComposeTask=newEmailComposeTask(){Subject="邮件主题",Body="邮件正文",To="recipient@example.com",抄送="cc@example.com",密送="bcc@example.com"};emailComposeTask.Show();}privatevoidShareSMS(objectsender,System.Windows.Input.GestureEventArgse){SmsComposeTasksmsComposeTask=newSmsComposeTask(){Body="试试这个新的应用程序。太棒了!"};smsComposeTask.Show();}参考:WindowsPhone的启动器共享链接任务根据我的API参考,DataTrejectManager仅为本机应用程序保留WindowsPhoneAPI快速入门。您是否尝试过使用完全合格的方法?它看起来像这样:DataTransferManagerdataTransferManager=indows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();另外,请确保您的目标是WindowsPhone8。WP8不支持Windows8共享合同。WP8上什至没有分享魅力。为什么要使用DataTransferManager?大多数用例可以与WP8app2app自定义协议和文件扩展名一起使用,而不是使用共享契约。使用WP8应用程序,您可以跨应用程序传输文件和数据。通过取消共享合约的标准化合约,应用程序可以创建自己的带有自定义协议和文件扩展名的合约。例如,您可以了解有关诺基亚音乐自定义协议的真实第三方实现的更多信息。以上就是C#学习教程:WindowsPhone8分享的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
