我正在創建一個便攜式MockGeoLocationWatcher,它可以替代IMvxGeoLocationWatcher的具體實現,直到有一個實際設備。這應該有助於開發和測試需要地理位置的應用程序。MvvmCross將配置傳遞給可配置的插件加載程序
這個插件的插件加載類目前看起來是這樣的:
namespace Pidac.MvvmCross.Plugins.Location
{
public class PluginLoader : IMvxConfigurablePluginLoader
{
private bool _loaded;
public static readonly PluginLoader Instance = new PluginLoader();
public void EnsureLoaded()
{
if (_loaded)
return;
_loaded = true;
var locationWatcher = new MockGeoLocationWatcher();
var data = @"<?xml version='1.0' encoding='utf-8'?>
<WindowsPhoneEmulator xmlns='http://schemas.microsoft.com/WindowsPhoneEmulator/2009/08/SensorData'>
<SensorData>
<Header version='1' />
<GpsData latitude='48.619934106826' longitude='-84.5247359841114' />
<GpsData latitude='48.6852544862377' longitude='-83.9864059059864' />
<GpsData latitude='48.8445703681025' longitude='-83.7337203591114' />
<GpsData latitude='48.8662561090809' longitude='-83.2393355934864' />
<GpsData latitude='49.0825970371386' longitude='-83.0415816872364' />
<GpsData latitude='49.2621642999055' longitude='-82.7229781716114' />
<GpsData latitude='49.2621642999055' longitude='-82.6021285622364' />
<GpsData latitude='49.2047736379815' longitude='-82.3054977028614' />
</SensorData>
</WindowsPhoneEmulator>";
locationWatcher.SensorLocationData = data;
Mvx.RegisterSingleton(typeof(IMvxGeoLocationWatcher), locationWatcher);
}
public void Configure(IMvxPluginConfiguration configuration)
{
}
}
public class MockLocationWatcherConfiguration : IMvxPluginConfiguration
{
public static readonly MockLocationWatcherConfiguration Default = new MockLocationWatcherConfiguration();
// ideally, we should use this property to point to a file or string containing location data
// this should be configurable outside of code base.
public string SensorLocationData { get; set; }
}
}
我會想通過傳感器的數據,目前硬編碼到所謂的「數據」,通過MockLocationWatcherConfiguration的實例變量,但不知道在哪裏MvvmCross框架期望在調用IMvxConfigurablePluginLoader.Configure(配置)之前加載此插件的配置。理想情況下,我應該通過配置來指定。
我查看了 Json plugin's implementation of PluginLoaded,但在IMvxConfigurablePluginLoader.Configure嘗試進行強制轉換之前,仍然無法確定配置的檢索位置。
任何想法或指針將不勝感激。
TIA。
應通過維基已經顯得有點困難。再次感謝。 –
鏈接被破壞,我找到了一個存檔鏈接:https://github.com/rafaelsteil/MvvmCross-Wiki/blob/master/MvvmCross-plugins.md – Felix