mirror of
https://github.com/qinyuhang/ShadowsocksX-NG-R.git
synced 2026-10-30 05:13:46 +00:00
拆分app url scheme解析子函数
This commit is contained in:
@@ -143,7 +143,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
|
||||
var isChanged = false
|
||||
|
||||
for url in urls {
|
||||
let profielDict = ParseSSURL(url)
|
||||
let profielDict = ParseAppURLSchemes(url)//ParseSSURL(url)
|
||||
if let profielDict = profielDict {
|
||||
let profile = ServerProfile.fromDictionary(profielDict as [String : AnyObject])
|
||||
mgr.profiles.append(profile)
|
||||
|
||||
@@ -15,7 +15,9 @@ NSString* decode64(NSString* str);
|
||||
|
||||
NSString* encode64(NSString* str);
|
||||
|
||||
NSDictionary<NSString*, id>* ParseSSURL(NSURL* url);
|
||||
NSDictionary<NSString*, id>* ParseAppURLSchemes(NSURL* url);
|
||||
|
||||
static NSDictionary<NSString*, id>* ParseSSURL(NSURL* url);
|
||||
|
||||
static NSDictionary<NSString*, id>* ParseSSRURL(NSURL* url);
|
||||
|
||||
|
||||
+15
-4
@@ -98,10 +98,24 @@ NSString* encode64(NSString* str){
|
||||
return stringBase64;
|
||||
}
|
||||
|
||||
NSDictionary<NSString*, id>* ParseAppURLSchemes(NSURL* url){
|
||||
if(!url.host){
|
||||
return nil;
|
||||
}
|
||||
NSString *urlString = [url absoluteString];
|
||||
if ([urlString hasPrefix:@"ss://"]) {
|
||||
return ParseSSURL(url);
|
||||
}
|
||||
if ([urlString hasPrefix:@"ssr://"]) {
|
||||
return ParseSSRURL(url);
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
// 解析SS URL,如果成功则返回一个与ServerProfile类兼容的dict
|
||||
// 或SSR URL,ServerProfile类已经默认添加SSR参数,默认放空,如果URL为SSR://则改变解析方法
|
||||
// ss:// + base64(method:password@domain:port)
|
||||
NSDictionary<NSString*, id>* ParseSSURL(NSURL* url) {
|
||||
static NSDictionary<NSString*, id>* ParseSSURL(NSURL* url) {
|
||||
if (!url.host) {
|
||||
return nil;
|
||||
}
|
||||
@@ -159,9 +173,6 @@ NSDictionary<NSString*, id>* ParseSSURL(NSURL* url) {
|
||||
};
|
||||
}
|
||||
|
||||
}else if ([urlString hasPrefix:@"ssr://"]){
|
||||
NSDictionary<NSString *, id> *ssrObj = ParseSSRURL(url);
|
||||
return ssrObj;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user