适用于WindowsPhone 8.1的Xamarin Toasts插件

时间:2015-09-04 05:15:52

标签: xamarin.forms custom-renderer

我需要在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

2 个答案:

答案 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