using System;
|
using Foundation;
|
using HDL_ON;
|
using Shared;
|
using UIKit;
|
using UserNotifications;
|
using Microsoft.AppCenter;
|
using Microsoft.AppCenter.Analytics;
|
using Microsoft.AppCenter.Crashes;
|
using HDL_ON.UI;
|
|
namespace SharedMethod
|
{
|
public static class SharedMethod
|
{
|
public static UIApplication sharedApp;
|
public static PageLayout CurPageLayout = null;
|
public static bool IsBackground;
|
|
//public static string CheckVersion()
|
//{
|
// Harpy.Harpy.SharedInstance.CheckVersion();
|
// UserConfig.Instance.IsAppStoreVersionNewer = Harpy.Harpy.SharedInstance.TestIsAppStoreVersionNewer;
|
// UserConfig.Instance.StoreVersion = Harpy.Harpy.SharedInstance.CurrentAppStoreVersion;
|
// UserConfig.Instance.SaveUserConfig();
|
// if (Shared.SimpleControl.MainPage.LoginUser.AccountString == @"464027401@qq.com")
|
// {
|
// return $"TestIsAppStoreVersionNewer : {UserConfig.Instance.IsAppStoreVersionNewer};; CurrentAppStoreVersion : {UserConfig.Instance.StoreVersion}";
|
// }
|
// else
|
// {
|
// return "";
|
// }
|
//}
|
}
|
|
}
|
|
namespace HDL_ON_iOS
|
{
|
// The UIApplicationDelegate for the application. This class is responsible for launching the
|
// User Interface of the application, as well as listening (and optionally responding) to application events from iOS.
|
[Register("AppDelegate")]
|
public class AppDelegate : BaseApplicationDelegate
|
{
|
// class-level declarations
|
|
public override UIWindow Window
|
{
|
get;
|
set;
|
}
|
|
//public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
|
//{
|
// // Override point for customization after application launch.
|
// // If not required for your application you can safely delete this method
|
// return true;
|
//}
|
|
public static void CleanApplicationIconBadgeNumber()
|
{
|
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
}
|
|
public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
|
{
|
|
byte[] array = new byte[(ulong)deviceToken.Length];
|
System.Runtime.InteropServices.Marshal.Copy(deviceToken.Bytes, array, 0, array.Length);
|
System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
|
for (int i = 0; i < array.Length; i++)
|
{
|
stringBuilder.AppendFormat("{0:x2}", array[i]);
|
}
|
string text = stringBuilder.ToString();
|
if (NSUserDefaults.StandardUserDefaults.StringForKey("PushDeviceToken") != text)
|
{
|
NSUserDefaults.StandardUserDefaults.SetString(text, "PushDeviceToken");
|
}
|
|
/// Get current device token
|
var DeviceToken = text;
|
if (!string.IsNullOrWhiteSpace(DeviceToken))
|
{
|
DeviceToken = DeviceToken.Trim('<').Trim('>').Replace(" ", "");
|
}
|
|
// Get previous device token
|
var oldDeviceToken = NSUserDefaults.StandardUserDefaults.StringForKey("PushDeviceToken");
|
|
// Has the token changed?
|
if (string.IsNullOrEmpty(oldDeviceToken) || !oldDeviceToken.Equals(DeviceToken))
|
{
|
//TODO: Put your own logic here to notify your server that the device token has changed/been created!
|
|
// Save new device token
|
NSUserDefaults.StandardUserDefaults.SetString(DeviceToken, "PushDeviceToken");
|
string userPhoneName = UIDevice.CurrentDevice.Name;
|
|
OnAppConfig.Instance.PushDeviceToken = DeviceToken;
|
//UserConfig.Instance.phoneName = userPhoneName;
|
//UserConfig.Instance.SaveUserConfig();
|
}
|
if (OnAppConfig.Instance.PushDeviceToken != DeviceToken)
|
{
|
string userPhoneName = UIDevice.CurrentDevice.Name;
|
OnAppConfig.Instance.PushDeviceToken = DeviceToken;
|
//UserConfig.Instance.phoneName = userPhoneName;
|
//UserConfig.Instance.SaveUserConfig();
|
}
|
}
|
|
public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
|
{
|
Console.WriteLine("DidReceiveRemoteNotification:" + application.ApplicationState.ToString());
|
|
//读取推送信息
|
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
}
|
|
public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
|
{
|
if (application.ApplicationState == UIApplicationState.Active)
|
{
|
Console.WriteLine("ReceivedRemoteNotification1");
|
}
|
else if (application.ApplicationState == UIApplicationState.Background)
|
{
|
Console.WriteLine("ReceivedRemoteNotification2");
|
}
|
else if (application.ApplicationState == UIApplicationState.Inactive)
|
{
|
Console.WriteLine("ReceivedRemoteNotification3");
|
}
|
|
//string extKey1 = "PushResType";
|
//NSString extValue1 = userInfo.ValueForKey ((NSString)extKey1);
|
|
}
|
|
public override void OnResignActivation(UIApplication application)
|
{
|
Console.WriteLine("OnResignActivation");
|
BusSocket.Stop();
|
}
|
|
public override void DidEnterBackground(UIApplication application)
|
{
|
SharedMethod.SharedMethod.IsBackground = true;
|
Console.WriteLine("DidEnterBackground");
|
}
|
|
|
public override void WillEnterForeground(UIApplication application)
|
{
|
SharedMethod.SharedMethod.IsBackground = false;
|
//BusSocket.Start(6000);
|
new AppUnlockPage().LoadPage();
|
Console.WriteLine("WillEnterForeground");
|
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
}
|
|
public override void WillTerminate(UIApplication application)
|
{
|
Console.WriteLine("WillTerminate");
|
}
|
|
public override void OnActivated(UIApplication application)
|
{
|
Console.WriteLine("OnActivated");
|
base.OnActivated(application);
|
|
}
|
|
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
|
{
|
Shared.Application.IsGpsEnable = true;
|
AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e",typeof(Analytics), typeof(Crashes));
|
base.FinishedLaunching(application, launchOptions);
|
|
SharedMethod.SharedMethod.sharedApp = application;
|
//NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
|
application.StatusBarStyle = UIStatusBarStyle.DarkContent;
|
|
string nsCount = NSLocale.CurrentLocale.CountryCode;
|
if (nsCount != OnAppConfig.Instance.CountryCode)
|
{
|
OnAppConfig.Instance.CountryCode = nsCount;
|
OnAppConfig.Instance.SaveUserConfig();
|
}
|
application.IdleTimerDisabled = true;
|
application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
|
|
Window = new UIWindow(UIScreen.MainScreen.Bounds);
|
var Root = new UINavigationController(new ViewController()) { NavigationBarHidden = true };
|
Window.RootViewController = Root;
|
Window.MakeKeyAndVisible();
|
//window.AccessibilityNavigationStyle = UIAccessibilityNavigationStyle.Automatic;
|
// check for a notification
|
if (launchOptions != null)
|
{
|
// check for a remote notification
|
if (launchOptions.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
|
{
|
|
NSDictionary remoteNotification = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
|
if (remoteNotification != null)
|
{
|
//UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
}
|
}
|
}
|
if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
|
{
|
var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);
|
application.RegisterUserNotificationSettings(notificationSettings);
|
application.RegisterForRemoteNotifications();
|
}
|
else
|
{
|
//==== register for remote notifications and get the device token
|
// set what kind of notification types we want
|
UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge;
|
// register for remote notifications
|
UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(notificationTypes);
|
}
|
|
if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
|
{
|
//RemoteInfo.Current.ReadMsgList(true);
|
}
|
|
//Harpy.Harpy.SharedInstance.PresentingViewController = this.Window.RootViewController;
|
//Harpy.Harpy.SharedInstance.WeakDelegate = this;
|
//Harpy.Harpy.SharedInstance.AlertType = Harpy.HarpyAlertType.Skip;
|
//Harpy.Harpy.SharedInstance.DebugEnabled = false;
|
//Harpy.Harpy.SharedInstance.ForceLanguageLocalization = Harpy.Constants.HarpyLanguageChineseSimplified;
|
Console.WriteLine("FinishedLaunching");
|
return true;
|
}
|
}
|
}
|