拆分app url scheme解析子函数

This commit is contained in:
秦宇航
2017-04-16 10:52:55 +08:00
parent acc7e0361a
commit b89f61021c
3 changed files with 19 additions and 6 deletions
+1 -1
View File
@@ -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)
+3 -1
View File
@@ -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
View File
@@ -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;
}