Преглед на файлове

Fixes to Email link opening

Nick-PRSDigital@bitbucket.org преди 2 години
родител
ревизия
1ca4b3ceb1
променени са 3 файла, в които са добавени 51 реда и са изтрити 29 реда
  1. 1 1
      prs.mobile.new/PRS.Mobile.iOS/AppDelegate.cs
  2. 12 1
      prs.mobile.new/PRS.Mobile.iOS/Info.plist
  3. 38 27
      prs.mobile.new/PRS.Mobile/Main/PINLoginPage.xaml.cs

+ 1 - 1
prs.mobile.new/PRS.Mobile.iOS/AppDelegate.cs

@@ -128,7 +128,7 @@ namespace PRS.Mobile.iOS
         public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
         {
             
-            App.LaunchParameters = url.AbsoluteString.Remove(0, 17);
+            App.LaunchParameters = url.AbsoluteString.Remove(0, 15); 
             LoadApplication(new App());
 
             return true;

+ 12 - 1
prs.mobile.new/PRS.Mobile.iOS/Info.plist

@@ -27,7 +27,7 @@
 	<key>CFBundleIdentifier</key>
 	<string>com.prsdigital.prssiteapp</string>
 	<key>CFBundleVersion</key>
-	<string>1.01.10</string>
+	<string>1.02.2</string>
 	<key>UILaunchStoryboardName</key>
 	<string>LaunchScreen</string>
 	<key>CFBundleName</key>
@@ -56,5 +56,16 @@
 	<string>TimeBench needs access to your photo library for Delivery &amp; Requisition Photos</string>
 	<key>NSMicrophoneUsageDescription</key>
 	<string>Needs microphone to record videos</string>
+	<key>CFBundleURLTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleURLName</key>
+			<string>open</string>
+			<key>CFBundleURLSchemes</key>
+			<array>
+				<string>prssite</string>
+			</array>
+		</dict>
+	</array>
 </dict>
 </plist>

+ 38 - 27
prs.mobile.new/PRS.Mobile/Main/PINLoginPage.xaml.cs

@@ -167,41 +167,52 @@ namespace PRS.Mobile
         
         private void CheckAutoConfigurationLink()
         {
-            var parameters = App.LaunchParameters;
-            App.LaunchParameters = "";
-            
-            if (String.IsNullOrWhiteSpace(parameters))
-                return;
-            
-            var decrypted = Encryption.Decrypt(parameters, "logindetailslink");
-            if (decrypted?.ToUpper()?.Contains("ENDURLS") == true)
+            try
             {
-                var comps = decrypted.Split("ENDURLS");
-                if (comps.Length == 2)
+                var parameters = App.LaunchParameters;
+                App.LaunchParameters = "";
+
+                if (String.IsNullOrWhiteSpace(parameters))
+                    return;
+
+                var decrypted = Encryption.Decrypt(parameters, "logindetailslink");
+                if (decrypted?.ToUpper()?.Contains("ENDURLS") == true)
                 {
-                    var urls = comps.First().Split(',');
-                    var settings = comps.Last().Split(',');
-                    if (urls.Any() && (settings.Length == 3))
+                    var comps = decrypted.Split("ENDURLS");
+                    if (comps.Length == 2)
                     {
-                        String user = settings[0];
-                        String password = settings[1];
-                        DateTime expiry = DateTime.Parse(settings[2]);
-                        if (expiry > DateTime.Now)
+                        var urls = comps.First().Split(',').Where(x => x != "").ToArray();
+                        var settings = comps.Last().Split(',').Where(x => x != "").ToArray();
+                        if (urls.Any() && (settings.Length == 3))
                         {
-                            _settings.URLs = urls;
-                            _settings.UserID = user;
-                            _settings.Password = password;
-                            new LocalConfiguration<DatabaseSettings>().Save(_settings);
-                            DisplayAlert("Autoconfiguration", "Configuration Updated Successfully!!", "OK").Wait();
+                            String user = settings[0];
+                            String password = settings[1];
+                            DateTime expiry = DateTime.Parse(settings[2]);
+                            if (expiry > DateTime.Now)
+                            {
+                                _settings = new DatabaseSettings();
+                                _settings.URLs = urls;
+                                _settings.UserID = user;
+                                _settings.Password = password;
+                                new LocalConfiguration<DatabaseSettings>().Save(_settings);
+                                DisplayAlert("Autoconfiguration", "Configuration Updated Successfully!!", "OK");
+                            }
+                            else
+                                DisplayAlert("AutoConfiguration", "AutoConfiguration Link has expired!", "OK");
                         }
-                        DisplayAlert("AutoConfiguration", "AutoConfiguration Link has expired!", "OK").Wait();
+                        else
+                            DisplayAlert("AutoConfiguration", "Invalid AutoConfiguration content!", "OK");
                     }
-                    DisplayAlert("AutoConfiguration", "Invalid AutoConfiguration content!", "OK").Wait();
+                    else
+                        DisplayAlert("AutoConfiguration", "Invalid AutoConfiguration structure!", "OK");
                 }
-                DisplayAlert("AutoConfiguration", "Invalid AutoConfiguration structure!", "OK").Wait();
+                else
+                    DisplayAlert("AutoConfiguration", "Invalid AutoConfiguration format!", "OK");
+            }
+            catch (Exception e)
+            {
+                DisplayAlert("Error loading from link", e.Message, "OK");
             }
-            DisplayAlert("AutoConfiguration", "Invalid AutoConfiguration format!", "OK").Wait();
-            
         }
 
         private void LoadSettings()