Skip to content

Commit 95d7187

Browse files
committed
fix: iOS 17 issue
1 parent b7e84da commit 95d7187

File tree

1 file changed

+18
-22
lines changed

1 file changed

+18
-22
lines changed

ios/Classes/SwiftFlutterSystemProxyPlugin.swift

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,29 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
1414
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
1515
switch call.method {
1616
case "getDeviceProxy":
17-
do {
18-
let args = call.arguments as! NSDictionary
19-
let url = args.value(forKey:"url") as! String
20-
var dict:[String:Any] = [:]
21-
if(SwiftFlutterSystemProxyPlugin.proxyCache[url] != nil){
17+
do {
18+
let args = call.arguments as! NSDictionary
19+
let url = args.value(forKey:"url") as! String
20+
var dict:[String:Any] = [:]
21+
if(SwiftFlutterSystemProxyPlugin.proxyCache[url] != nil){
2222
let res = SwiftFlutterSystemProxyPlugin.proxyCache[url]
2323
if(res != nil){
2424
dict = res as! [String:Any]
2525
}
26-
} else {
27-
let res = try SwiftFlutterSystemProxyPlugin.resolve(url: url)
28-
if(res != nil){
26+
}
27+
else
28+
{
29+
let res = try SwiftFlutterSystemProxyPlugin.resolve(url: url)
30+
if(res != nil){
2931
dict = res as! [String:Any]
32+
}
3033
}
31-
}
32-
result(dict)
34+
result(dict)
3335
} catch let error {
3436
print("Unexpected Proxy Error: \(error).")
3537
result(error)
3638
}
37-
break
39+
break
3840
default:
3941
result(FlutterMethodNotImplemented)
4042
}
@@ -67,7 +69,7 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
6769
SwiftFlutterSystemProxyPlugin.proxyCache[url] = dict
6870
}
6971
}
70-
return proxyCache[url]
72+
return SwiftFlutterSystemProxyPlugin.proxyCache[url]
7173
}
7274

7375
static func handlePacContent(pacContent: String,url: String){
@@ -88,8 +90,9 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
8890
static func handlePacUrl(pacUrl: String, url: String){
8991
var _pacUrl = CFURLCreateWithString(kCFAllocatorDefault, pacUrl as CFString?,nil)
9092
var targetUrl = CFURLCreateWithString(kCFAllocatorDefault, url as CFString?, nil)
93+
var info = url;
9194
if(pacUrl != nil && targetUrl != nil){
92-
var context:CFStreamClientContext = CFStreamClientContext.init(version: 0, info: &targetUrl, retain: nil, release: nil, copyDescription: nil)
95+
var context:CFStreamClientContext = CFStreamClientContext.init(version: 0, info: &info, retain: nil, release: nil, copyDescription: nil)
9396
let runLoopSource = CFNetworkExecuteProxyAutoConfigurationURL(_pacUrl!,targetUrl!, { client, proxies, error in
9497
let _proxies = proxies as? [[CFString: Any]] ?? [];
9598
if(_proxies != nil){
@@ -101,15 +104,8 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
101104
var dict:[String: Any] = [:]
102105
dict["host"] = host
103106
dict["port"] = port
104-
let context = client.assumingMemoryBound(to: CFStreamClientContext.self).pointee
105-
let url = context.info.assumingMemoryBound(to: CFURL.self).pointee
106-
do{
107-
let urlString = CFURLGetString(url);
108-
SwiftFlutterSystemProxyPlugin.proxyCache[urlString as! String] = dict
109-
print(url)
110-
}catch error{
111-
print(error)
112-
}
107+
let url = client.assumingMemoryBound(to: String.self).pointee
108+
SwiftFlutterSystemProxyPlugin.proxyCache[url] = dict
113109
}
114110
}
115111
}

0 commit comments

Comments
 (0)