@@ -209,21 +209,49 @@ public void OpenDirectory(string DirectoryPath, string FileName = null)
209209 explorer . Start ( ) ;
210210 }
211211
212- public void OpenUrl ( string url , bool ? inPrivate = null )
212+ public void OpenUri ( string url , bool ? inPrivate = null , bool isAppUri = false )
213213 {
214- var browserInfo = _settingsVM . Settings . CustomBrowser ;
214+ var uri = new Uri ( url ) ;
215+ if ( uri . Scheme == Uri . UriSchemeHttp || uri . Scheme == Uri . UriSchemeHttps )
216+ {
217+ var browserInfo = _settingsVM . Settings . CustomBrowser ;
215218
216- var path = browserInfo . Path == "*" ? "" : browserInfo . Path ;
219+ var path = browserInfo . Path == "*" ? "" : browserInfo . Path ;
217220
218- if ( browserInfo . OpenInTab )
219- {
220- url . OpenInBrowserTab ( path , inPrivate ?? browserInfo . EnablePrivate , browserInfo . PrivateArg ) ;
221+ if ( browserInfo . OpenInTab )
222+ {
223+ url . OpenInBrowserTab ( path , inPrivate ?? browserInfo . EnablePrivate , browserInfo . PrivateArg ) ;
224+ }
225+ else
226+ {
227+ url . OpenInBrowserWindow ( path , inPrivate ?? browserInfo . EnablePrivate , browserInfo . PrivateArg ) ;
228+ }
229+
230+ return ;
221231 }
222- else
232+
233+ if ( isAppUri )
223234 {
224- url . OpenInBrowserWindow ( path , inPrivate ?? browserInfo . EnablePrivate , browserInfo . PrivateArg ) ;
235+ Process . Start ( new ProcessStartInfo ( )
236+ {
237+ FileName = url ,
238+ UseShellExecute = true
239+ } ) ? . Dispose ( ) ;
240+
241+ return ;
225242 }
226243
244+ throw new InvalidOperationException ( "URI scheme not specified or supported " ) ;
245+ }
246+
247+ public void OpenUrl ( string url , bool ? inPrivate = null )
248+ {
249+ OpenUri ( url , inPrivate ) ;
250+ }
251+
252+ public void OpenAppUri ( string appUri )
253+ {
254+ OpenUri ( appUri , isAppUri : true ) ;
227255 }
228256
229257 public event FlowLauncherGlobalKeyboardEventHandler GlobalKeyboardEvent ;
@@ -254,4 +282,4 @@ private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, Spe
254282
255283 #endregion
256284 }
257- }
285+ }
0 commit comments