2015-09-04 52 views
2

我需要在Xamarin.Forms上使用Toasts。我發現Toasts.Forms.Plugin但它不適用於WP8.1Xamarin Toasts插件用於WindowsPhone 8.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 

回答

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>()); 
+0

我收到提示同時加入了包想通。查看(更新)的問題 –

+0

您使用的是Silverlight 8.1項目嗎?因爲我不是;根據Xamarin的指南,我添加了WP8.1項目。 –

+0

我的錯誤。正如Massimo Prota所提到的那樣,只有一個針對Silverlight WP 8.1的包,這是上面代碼中使用的。 – smoksnes

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

+0

是的,我知道它還不支持;我正計劃進行一些更改並添加WP8.1項目;因爲我沒有在WP8項目中看到很多代碼。 我已經在項目中做了很多事情,不想添加Silverlight並重新檢查一切。 –

+0

我按照Xamarin的指南添加了WP8.1項目。 –

+0

好吧,WinRT對Xamarin Forms的支持現在是官方的,但並不是所有的插件也爲WinRT(wpa81)提供了庫。這是你的情況 –