如何在Xamarin.Forms Android中保存Firebase设备令牌
这是我的代码:如何在Xamarin.Forms Android中保存Firebase设备令牌,xamarin.forms,dependency-injection,xamarin.android,Xamarin.forms,Dependency Injection,Xamarin.android,这是我的代码: [Service] [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })] public class MyFirebaseIIDService : FirebaseInstanceIdService { public ISharedFunctions SharedFunctions => DependencyService.Get&
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
public ISharedFunctions SharedFunctions => DependencyService.Get<ISharedFunctions>();
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
SendRegistrationToServer(refreshedToken);
}
void SendRegistrationToServer(string token)
{
// Add custom implementation, as needed.
SharedFunctions.SaveFirebaseDeviceToken(token);
SharedFunctions.GetFirebaseDeviceToken();
}
}
如何使用DependencyService保存它,因为我在Android和IOS中使用相同的共享功能来保存和获取令牌?您不能使用DependencyService将数据从平台项目发送到共享项目 我建议您使用以下方式发送数据:
MessagingCenter.Send<MainPage>(this, "Hi");
使用键获取值:
Preferences.Set("my_key", "my_value");
var myValue = Preferences.Get("my_key", "default_value");
您通常使用DependencyService从共享代码访问平台代码。您不需要它来访问平台项目中的共享代码。@Jacck Hua-MSFT我需要为Android和IOS保存Firebase设备令牌。您可以使用不同的键使用首选项来保存,您有什么问题吗?我是用MessagingCenter做的。打电话给信息中心可以吗;从IOS和Android项目?当然,您可以在IOS和Android项目中使用MessagingCenter.MessagingCenter.Subscribe(此“FirebaseToken”,(参数,列表)=>{DependencyService.Get().SaveFirebaseDeviceToken(列表);});
Preferences.Set("my_key", "my_value");
var myValue = Preferences.Get("my_key", "default_value");