Reputation: 21
I created finishlaunching() in AppDelegate.cs and RegisteredForRemoteNotifications() but when I try to get device token it does not call RegisteredForRemoteNotifications() and I created push notification using Urban airship and for Test, I need device token.
How can I get Device Token using RemoteNotification ?
AppDelegate.cs contains below code...
using System;
using System.Reflection;
using Test.Interfaces;
using Test.Interfaces.UAIntegration;
using Test.iOS.UAIntegration;
using TestWebAPI.Client;
using TestWebAPI.Models;
using TestWebAPI.Models.ResponseModels;
using CoreGraphics;
using Facebook.CoreKit;
using Foundation;
using GalaSoft.MvvmLight.Ioc;
using HockeyApp.iOS;
using UIKit;
using UrbanAirship;
using Xamarin.Forms.Platform.iOS;
using FacebookProfile = Facebook.CoreKit.Profile;
using FacebookSettings = Facebook.CoreKit.Settings;
using StoreKit;
using System.Diagnostics;
using Test.Services;
namespace Test.iOS
{
[Register("AppDelegate")]
public partial class AppDelegate : FormsApplicationDelegate
{
private NetworkManager _networkManager;
public override bool FinishedLaunching(UIApplication uiApplication, NSDictionary launchOptions)
{
UAirship.TakeOff();
RegisterServices();
//SetupHockeyAppSDK ();
SetupFacebookSDK();
FFImageLoading.Forms.Touch.CachedImageRenderer.Init();
var dummy = new FFImageLoading.Forms.Touch.CachedImageRenderer();
Xamarin.Forms.Forms.Init();
LoadApplication(new App());
UIApplication.SharedApplication.StatusBarHidden = false;
UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, false);
_networkManager = new NetworkManager();
//HACK
OverrideDefaultListViewCustomActionsColors();
UAirship.Push().UserPushNotificationsEnabled = true;
//string chanelid = UAirship.Push().ChannelID;
//string token = UAirship.Push().DeviceToken;
new PhotoAccessChecker();
//return ApplicationDelegate.SharedInstance.FinishedLaunching(uiApplication, launchOptions);
return base.FinishedLaunching(uiApplication, launchOptions);
}
public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
return ApplicationDelegate.SharedInstance.OpenUrl(application, url, sourceApplication, annotation);
}
void SetupFacebookSDK()
{
FacebookProfile.EnableUpdatesOnAccessTokenChange(true);
FacebookSettings.AppID = "983921778349321";
FacebookSettings.DisplayName = "Test – Test";
}
//void SetupHockeyAppSDK ()
//{
// BITHockeyManager.SharedHockeyManager.Configure ("88bf22ad3da341eab128b28cf316148f");
// BITHockeyManager.SharedHockeyManager.StartManager ();
// BITHockeyManager.SharedHockeyManager.Authenticator.AuthenticateInstallation ();
// BITHockeyManager.SharedHockeyManager.UpdateManager.AlwaysShowUpdateReminder = false;
//}
void RegisterServices()
{
SimpleIoc.Default.Register<IStatisticsCollector, FirebaseStatisticsCollector>(true);
SimpleIoc.Default.Register<HttpMessageHandlerFactory>();
SimpleIoc.Default.Register<ISettingsOpener, SettingsOpener>();
SimpleIoc.Default.Register<IPhotoAccessChecker, PhotoAccessChecker>();
SimpleIoc.Default.Register<IImageToStreamConverter, ImageToStreamConverter>();
SimpleIoc.Default.Register<IAuthenticationApiClient, AuthenticationApiClient>();
SimpleIoc.Default.Register<IUtilityApiClient, UtilityApiClient>();
SimpleIoc.Default.Register<IProfileApiClient, ProfileApiClient>();
SimpleIoc.Default.Register<IPaymentApiClient, PaymentApiClient>();
SimpleIoc.Default.Register<IInboxApiClient, InboxApiClient>();
SimpleIoc.Default.Register<IBlogApiClient, BlogApiClient>();
SimpleIoc.Default.Register<IUserSettings, UserSettings>();
SimpleIoc.Default.Register<IPreferences, Preferences>();
SimpleIoc.Default.Register<IEncryptor, Encryptor>();
SimpleIoc.Default.Register<ITimerFactory, TimerFactory>();
SimpleIoc.Default.Register<ISuggestionService<Location>, LocationService>();
SimpleIoc.Default.Register<ISuggestionService<Gender>, GenderService>();
SimpleIoc.Default.Register<ISuggestionService<Religion>, ReligionService>();
SimpleIoc.Default.Register<ISuggestionService<Diet>, DietService>();
SimpleIoc.Default.Register<ISuggestionService<Drink>, DrinkService>();
SimpleIoc.Default.Register<ISuggestionService<Smoke>, SmokeService>();
SimpleIoc.Default.Register<ISuggestionService<Occupation>, OccupationService>();
SimpleIoc.Default.Register<ISuggestionService<Education>, EducationService>();
SimpleIoc.Default.Register<ISuggestionService<MaritalStatus>, MaritalService>();
SimpleIoc.Default.Register<ISuggestionService<MemberTag>, TagsService>();
SimpleIoc.Default.Register<ISuggestionService<HeightFeet>, HeightFeetService>();
SimpleIoc.Default.Register<ISuggestionService<HeightInches>, HeightInchesService>();
SimpleIoc.Default.Register<ISuggestionService<BlockReason>, BlockReasonService>();
SimpleIoc.Default.Register<ISuggestionService<CancellationReason>, CancellationReasonService>();
SimpleIoc.Default.Register<ISuggestionService<HideProfileReason>, HideProfileReasonService>();
SimpleIoc.Default.Register<IDialogService, DialogService>();
SimpleIoc.Default.Register<ICropImageService, CropImageService>();
SimpleIoc.Default.Register<IFileService, FileService>();
SimpleIoc.Default.Register<INotificationService, NotificationService>();
SimpleIoc.Default.Register<IFacebookService, FacebookService>();
SimpleIoc.Default.Register<IUrbanAirshipService, UrbanAirshipService>();
SimpleIoc.Default.Register<IInAppService, InAppService>();
SimpleIoc.Default.Register<SuggestionServices>();
}
void OverrideDefaultListViewCustomActionsColors()
{
CGRect rect = new CGRect(0, 0, 1, 1);
CGSize size = rect.Size;
UIGraphics.BeginImageContext(size);
CGContext currentContext = UIGraphics.GetCurrentContext();
currentContext.SetFillColor(Colors.d8Red.ToCGColor());
currentContext.FillRect(rect);
var backgroundImage = UIGraphics.GetImageFromCurrentImageContext();
currentContext.Dispose();
var contextActionsCellType = Type.GetType("Xamarin.Forms.Platform.iOS.ContextActionsCell, Xamarin.Forms.Platform.iOS, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null");
// Now change the static field value!
var backgroundImageField = contextActionsCellType.GetField("DestructiveBackground", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
backgroundImageField.SetValue(null, backgroundImage);
rect = new CGRect(0, 0, 1, 1);
size = rect.Size;
UIGraphics.BeginImageContext(size);
currentContext = UIGraphics.GetCurrentContext();
currentContext.SetFillColor(Colors.d8Purple.ToCGColor());
currentContext.FillRect(rect);
backgroundImage = UIGraphics.GetImageFromCurrentImageContext();
currentContext.Dispose();
backgroundImageField = contextActionsCellType.GetField("NormalBackground", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
backgroundImageField.SetValue(null, backgroundImage);
}
public override void WillTerminate(UIApplication application)
{
(App.Locator.InApp.TheInAppService as InAppService).WillTerminate();
base.WillTerminate(application);
}
}
}
Upvotes: 0
Views: 207