/*
|
|
using System;
|
using Foundation;
|
using Microsoft.AppCenter;
|
using Microsoft.AppCenter.Analytics;
|
using Microsoft.AppCenter.Crashes;
|
using Shared;
|
using UIKit;
|
|
namespace SharedMethod
|
{
|
public static class SharedMethod
|
{
|
public static UIApplication sharedApp;
|
|
public static PageLayout CurPageLayout = null;
|
public static bool IsBackground;
|
|
}
|
|
}
|
namespace 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.FinishLaunching
|
[Register ("AppDelegate")]
|
public class AppDelegate : BaseApplicationDelegate
|
{
|
|
public override UIWindow Window {
|
get;
|
set;
|
}
|
//public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (UIApplication application, UIWindow forWindow)
|
//{
|
// if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) {
|
// return UIInterfaceOrientationMask.Portrait;
|
// } else {
|
// return UIInterfaceOrientationMask.LandscapeRight | UIInterfaceOrientationMask.Portrait;
|
// }
|
//}
|
//class MyUINavigationController : UINavigationController
|
//{
|
// public MyUINavigationController (UIViewController viewController) : base (viewController) { }
|
// public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
|
// {
|
// if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
|
// UIApplication.SharedApplication.SetStatusBarOrientation (UIInterfaceOrientation.LandscapeRight, false);
|
// return UIInterfaceOrientationMask.LandscapeRight;
|
// } else {
|
// return UIInterfaceOrientationMask.Portrait;
|
// }
|
// }
|
//}
|
//public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (UIApplication application, UIWindow forWindow)
|
//{
|
// if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
|
// return UIInterfaceOrientationMask.LandscapeRight;
|
// } else {
|
// return UIInterfaceOrientationMask.LandscapeRight | UIInterfaceOrientationMask.Portrait;
|
// }
|
//}
|
|
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
|
{
|
AppCenter.Start ("b95f7814-49fb-4345-bac5-98e70d098252", typeof (Analytics), typeof (Crashes));
|
Console.WriteLine ("FinishedLaunching");
|
base.FinishedLaunching (application, launchOptions);
|
//FinishedLaunchingAction?.Invoke (application, launchOptions);
|
SharedMethod.SharedMethod.sharedApp = application;
|
|
//NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
|
//string nsCount = NSLocale.CurrentLocale.CountryCode;
|
//if (nsCount != UserConfig.Instance.CountryCode) {
|
// UserConfig.Instance.CountryCode = nsCount;
|
// UserConfig.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 ();
|
if (launchOptions != null) {
|
if (launchOptions.ContainsKey (UIApplication.LaunchOptionsRemoteNotificationKey)) {
|
NSDictionary remoteNotification = launchOptions [UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
|
if (remoteNotification != null) {
|
}
|
}
|
}
|
if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
|
var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes (UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);
|
application.RegisterUserNotificationSettings (notificationSettings);
|
application.RegisterForRemoteNotifications ();
|
} else {
|
UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge;
|
UIApplication.SharedApplication.RegisterForRemoteNotificationTypes (notificationTypes);
|
}
|
|
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;
|
|
// UserConfig.Instance.tokenID = DeviceToken;
|
// UserConfig.Instance.phoneName = userPhoneName;
|
// UserConfig.Instance.SaveUserConfig ();
|
//}
|
//if (UserConfig.Instance.tokenID != DeviceToken) {
|
// string userPhoneName = UIDevice.CurrentDevice.Name;
|
// UserConfig.Instance.tokenID = 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 ());
|
// UserConfig.Instance.SaveUserConfig ();
|
// 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");
|
// }
|
//}
|
DateTime closeTime = DateTime.MinValue;
|
public override void OnResignActivation (UIApplication application)
|
{
|
Console.WriteLine ("OnResignActivation");
|
Shared.BusSocket.Stop ();
|
closeTime = DateTime.Now;
|
}
|
|
public override void DidEnterBackground (UIApplication application)
|
{
|
SharedMethod.SharedMethod.IsBackground = true;
|
Console.WriteLine ("DidEnterBackground");
|
}
|
|
public override void WillEnterForeground (UIApplication application)
|
{
|
SharedMethod.SharedMethod.IsBackground = false;
|
Console.WriteLine ("WillEnterForeground");
|
//if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
|
// RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
|
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
// Called as part of the transiton from background to active state.
|
// Here you can undo many of the changes made on entering the background.
|
}
|
|
public override void WillTerminate (UIApplication application)
|
{
|
Console.WriteLine ("WillTerminate");
|
// Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
|
}
|
|
public override void OnActivated (UIApplication application)
|
{
|
Console.WriteLine ("OnActivated");
|
base.OnActivated (application);
|
if (closeTime == DateTime.MinValue) {
|
closeTime = DateTime.Now;
|
} else if (closeTime.AddMinutes (2) > DateTime.Now) {
|
// MqttCommon.DisConnectRemoteMqttClient ();
|
}
|
|
var netStatus = (int)Reachability.InternetConnectionStatus ();
|
//有些系统版本这里启动比视图控制器快
|
if (!Shared.SimpleControl.MainPage.Showed) {
|
System.Threading.Tasks.Task.Run (() => {
|
while (true) {
|
System.Threading.Thread.Sleep (10);
|
if (Shared.SimpleControl.MainPage.Showed) {
|
break;
|
}
|
}
|
Shared.Application.RunOnMainThread (() => {
|
Shared.BusSocket.Start (6000);
|
if (SmartHome.WiFiSet.refreshView != null) {
|
SmartHome.WiFiSet.refreshView ();
|
}
|
});
|
});
|
return;
|
} else {
|
Shared.BusSocket.Start (6000);
|
}
|
if (SmartHome.WiFiSet.refreshView != null) {
|
SmartHome.WiFiSet.refreshView ();
|
}
|
if (netStatus == 0)
|
return;
|
|
}
|
}
|
}
|
*/
|
using System;
|
using System.Net;
|
using System.Text;
|
using Foundation;
|
using Microsoft.AppCenter;
|
using Microsoft.AppCenter.Analytics;
|
using Microsoft.AppCenter.Crashes;
|
using Newtonsoft.Json.Linq;
|
using Shared;
|
using Shared.SimpleControl;
|
using UIKit;
|
|
namespace SharedMethod
|
{
|
public static class SharedMethod
|
{
|
public static UIApplication sharedApp;
|
public static PageLayout CurPageLayout = null;
|
public static bool IsBackground;
|
|
}
|
|
}
|
namespace ON.Ios
|
{
|
[Register ("AppDelegate")]
|
public class AppDelegate : BaseApplicationDelegate
|
{
|
public override UIWindow Window {
|
get;
|
set;
|
}
|
|
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
|
{
|
AppCenter.Start ("b95f7814-49fb-4345-bac5-98e70d098252", typeof (Analytics), typeof (Crashes));
|
Console.WriteLine ("FinishedLaunching");
|
base.FinishedLaunching (application, launchOptions);
|
|
SharedMethod.SharedMethod.sharedApp = application;
|
|
//NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
|
string nsCount = NSLocale.CurrentLocale.CountryCode;
|
if (nsCount != UserConfig.Instance.CountryCode) {
|
UserConfig.Instance.CountryCode = nsCount;
|
UserConfig.Instance.SaveUserConfig ();
|
}
|
application.IdleTimerDisabled = true;
|
|
Window = new UIWindow (UIScreen.MainScreen.Bounds);
|
var Root = new UINavigationController (new ViewController ()) { NavigationBarHidden = true };
|
Window.RootViewController = Root;
|
Window.MakeKeyAndVisible ();
|
|
return true;
|
}
|
|
|
public static void CleanApplicationIconBadgeNumber ()
|
{
|
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
}
|
|
DateTime closeTime = DateTime.MinValue;
|
public override void OnResignActivation (UIApplication application)
|
{
|
Console.WriteLine ("OnResignActivation");
|
Shared.BusSocket.Stop ();
|
closeTime = DateTime.Now;
|
}
|
|
public override void DidEnterBackground (UIApplication application)
|
{
|
SharedMethod.SharedMethod.IsBackground = true;
|
Console.WriteLine ("DidEnterBackground");
|
}
|
|
public override void WillEnterForeground (UIApplication application)
|
{
|
SharedMethod.SharedMethod.IsBackground = false;
|
Console.WriteLine ("WillEnterForeground");
|
//if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
|
// RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
|
UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
|
// Called as part of the transiton from background to active state.
|
// Here you can undo many of the changes made on entering the background.
|
}
|
|
public override void WillTerminate (UIApplication application)
|
{
|
Console.WriteLine ("WillTerminate");
|
// Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
|
}
|
|
public override void OnActivated (UIApplication application)
|
{
|
Console.WriteLine ("OnActivated");
|
base.OnActivated (application);
|
if (closeTime == DateTime.MinValue) {
|
closeTime = DateTime.Now;
|
} else if (closeTime.AddMinutes (2) > DateTime.Now) {
|
// MqttCommon.DisConnectRemoteMqttClient ();
|
}
|
|
var netStatus = (int)Reachability.InternetConnectionStatus ();
|
//有些系统版本这里启动比视图控制器快
|
if (!Shared.SimpleControl.MainPage.Showed) {
|
System.Threading.Tasks.Task.Run (() => {
|
while (true) {
|
System.Threading.Thread.Sleep (10);
|
if (Shared.SimpleControl.MainPage.Showed) {
|
break;
|
}
|
}
|
Shared.Application.RunOnMainThread (() => {
|
Shared.BusSocket.Start (6000);
|
if (SmartHome.WiFiSet.refreshView != null) {
|
SmartHome.WiFiSet.refreshView ();
|
}
|
});
|
});
|
return;
|
} else {
|
Shared.BusSocket.Start (6000);
|
}
|
if (SmartHome.WiFiSet.refreshView != null) {
|
SmartHome.WiFiSet.refreshView ();
|
}
|
if (netStatus == 0)
|
return;
|
}
|
}
|
}
|