我需要在Xamarin.Forms上使用toast。我发现Toasts.Forms.Plugin但不是WP8.1
我在WinPhone8上面临很多性能问题所以我创建了WP8.1项目。
要使它在WP8.1上运行,我需要做什么?有人可以帮我弄清楚我需要做的改变吗?
编辑:我在添加Toasts.Forms.Plugin
包时出现以下错误
install-package : Could not install package 'Toasts.Forms.Plugin 1.0.6.18'. You are trying to install this package into a project that
targets 'WindowsPhoneApp,Version=v8.1', but the package does not contain any assembly references or content files that are compatible with
that framework. For more information, contact the package author.
At line:1 char:1
+ install-package Toasts.Forms.Plugin
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
答案 0 :(得分:1)
如果使用便携式项目,Toasts.Forms.Plugin实际上可用于WP8.1。我在我的一个带有WP8.1的Xamarin Forms项目中使用它
只需使用软件包管理器控制台安装软件包,并确保将您的WP8.1项目选为"默认项目":
install-package Toasts.Forms.Plugin
它应该会导致在WP8.1项目中将类似的内容添加到packages.config中。
<package id="Toasts.Forms.Plugin" version="1.0.6.18" targetFramework="wp81" />
要使其与其他Toasts.Forms.Plugins一起使用,您可以像这样使用DependencyService:
DependencyService.Get<IToastNotificator>()
如果遇到问题,可以使用共享库,让每个平台注入自己的依赖项,如:
public class ServiceRepositoryBase
{
protected static IToastNotificator ToastNotificator;
public static void Init(IToastNotificator toastNotificator)
{
ToastNotificator = toastNotificator;
}
// Other code here...
}
在MainPage.xaml.cs中:
ServiceRepositoryBase.Init(DependencyService.Get<IToastNotificator>());
答案 1 :(得分:0)
那是因为该插件目前只为WinPhone Silverlight(wp8)提供了库。您可能正在为您的项目使用WinRT(wpa81),并且插件中没有针对此目标的特定库。 您唯一能做的就是将WinPhone项目更改为Silverlight 8.1项目。
可以从.nupkg文件中找出支持的目标 https://github.com/EgorBo/Toasts.Forms.Plugin/blob/master/.nuget/Toasts.Forms.Plugin.1.0.6.18.nupkg