@capacitor/ios 5.7.4 → 5.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -107,7 +107,7 @@ internal class WebViewAssetHandler: NSObject, WKURLSchemeHandler {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
func webView(_ webView: WKWebView, stop urlSchemeTask: WKURLSchemeTask) {
|
|
110
|
-
|
|
110
|
+
urlSchemeTask.stopped = true
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
func mimeTypeForExtension(pathExtension: String) -> String {
|
|
@@ -155,43 +155,46 @@ internal class WebViewAssetHandler: NSObject, WKURLSchemeHandler {
|
|
|
155
155
|
|
|
156
156
|
let urlSession = URLSession.shared
|
|
157
157
|
let task = urlSession.dataTask(with: urlRequest) { (data, response, error) in
|
|
158
|
-
|
|
159
|
-
urlSchemeTask.
|
|
160
|
-
|
|
161
|
-
|
|
158
|
+
DispatchQueue.main.async {
|
|
159
|
+
guard !urlSchemeTask.stopped else { return }
|
|
160
|
+
if let error = error {
|
|
161
|
+
urlSchemeTask.didFailWithError(error)
|
|
162
|
+
return
|
|
163
|
+
}
|
|
162
164
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
165
|
+
if let response = response as? HTTPURLResponse {
|
|
166
|
+
let existingHeaders = response.allHeaderFields
|
|
167
|
+
var newHeaders: [AnyHashable: Any] = [:]
|
|
166
168
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
169
|
+
// if using live reload, then set CORS headers
|
|
170
|
+
if self.isUsingLiveReload(url) {
|
|
171
|
+
newHeaders = [
|
|
172
|
+
"Access-Control-Allow-Origin": self.serverUrl?.absoluteString ?? "",
|
|
173
|
+
"Access-Control-Allow-Methods": "GET, HEAD, OPTIONS, TRACE"
|
|
174
|
+
]
|
|
175
|
+
}
|
|
174
176
|
|
|
175
|
-
|
|
177
|
+
if let mergedHeaders = existingHeaders.merging(newHeaders, uniquingKeysWith: { (_, newHeaders) in newHeaders }) as? [String: String] {
|
|
176
178
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
179
|
+
if let responseUrl = response.url {
|
|
180
|
+
if let modifiedResponse = HTTPURLResponse(
|
|
181
|
+
url: responseUrl,
|
|
182
|
+
statusCode: response.statusCode,
|
|
183
|
+
httpVersion: nil,
|
|
184
|
+
headerFields: mergedHeaders
|
|
185
|
+
) {
|
|
186
|
+
urlSchemeTask.didReceive(modifiedResponse)
|
|
187
|
+
}
|
|
185
188
|
}
|
|
186
|
-
}
|
|
187
189
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
+
if let data = data {
|
|
191
|
+
urlSchemeTask.didReceive(data)
|
|
192
|
+
}
|
|
190
193
|
}
|
|
191
194
|
}
|
|
195
|
+
urlSchemeTask.didFinish()
|
|
196
|
+
return
|
|
192
197
|
}
|
|
193
|
-
urlSchemeTask.didFinish()
|
|
194
|
-
return
|
|
195
198
|
}
|
|
196
199
|
|
|
197
200
|
task.resume()
|
|
@@ -546,3 +549,16 @@ internal class WebViewAssetHandler: NSObject, WKURLSchemeHandler {
|
|
|
546
549
|
"zip": "application/x-zip-compressed"
|
|
547
550
|
]
|
|
548
551
|
}
|
|
552
|
+
|
|
553
|
+
private var stoppedKey = malloc(1)
|
|
554
|
+
|
|
555
|
+
private extension WKURLSchemeTask {
|
|
556
|
+
var stopped: Bool {
|
|
557
|
+
get {
|
|
558
|
+
return objc_getAssociatedObject(self, &stoppedKey) as? Bool ?? false
|
|
559
|
+
}
|
|
560
|
+
set {
|
|
561
|
+
objc_setAssociatedObject(self, &stoppedKey, newValue, .OBJC_ASSOCIATION_ASSIGN)
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
@@ -109,6 +109,12 @@ var nativeBridge = (function (exports) {
|
|
|
109
109
|
headers: { 'Content-Type': contentType || 'application/octet-stream' },
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
+
else if (body instanceof URLSearchParams) {
|
|
113
|
+
return {
|
|
114
|
+
data: body.toString(),
|
|
115
|
+
type: 'text',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
112
118
|
else if (body instanceof FormData) {
|
|
113
119
|
const formData = await convertFormData(body);
|
|
114
120
|
const boundary = `${Date.now()}`;
|
|
@@ -379,15 +385,15 @@ var nativeBridge = (function (exports) {
|
|
|
379
385
|
typeof c.dir === 'function');
|
|
380
386
|
};
|
|
381
387
|
const serializeConsoleMessage = (msg) => {
|
|
382
|
-
|
|
383
|
-
|
|
388
|
+
try {
|
|
389
|
+
if (typeof msg === 'object') {
|
|
384
390
|
msg = JSON.stringify(msg);
|
|
385
391
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
392
|
+
return String(msg);
|
|
393
|
+
}
|
|
394
|
+
catch (e) {
|
|
395
|
+
return '';
|
|
389
396
|
}
|
|
390
|
-
return String(msg);
|
|
391
397
|
};
|
|
392
398
|
const platform = getPlatformId(win);
|
|
393
399
|
if (platform == 'android' || platform == 'ios') {
|
|
@@ -496,11 +502,11 @@ var nativeBridge = (function (exports) {
|
|
|
496
502
|
if (request.url.startsWith(`${cap.getServerUrl()}/`)) {
|
|
497
503
|
return win.CapacitorWebFetch(resource, options);
|
|
498
504
|
}
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
505
|
+
const { method } = request;
|
|
506
|
+
if (method.toLocaleUpperCase() === 'GET' ||
|
|
507
|
+
method.toLocaleUpperCase() === 'HEAD' ||
|
|
508
|
+
method.toLocaleUpperCase() === 'OPTIONS' ||
|
|
509
|
+
method.toLocaleUpperCase() === 'TRACE') {
|
|
504
510
|
if (typeof resource === 'string') {
|
|
505
511
|
return await win.CapacitorWebFetch(createProxyUrl(resource, win), options);
|
|
506
512
|
}
|
|
@@ -512,8 +518,7 @@ var nativeBridge = (function (exports) {
|
|
|
512
518
|
const tag = `CapacitorHttp fetch ${Date.now()} ${resource}`;
|
|
513
519
|
console.time(tag);
|
|
514
520
|
try {
|
|
515
|
-
|
|
516
|
-
const { body, method } = request;
|
|
521
|
+
const { body } = request;
|
|
517
522
|
const optionHeaders = Object.fromEntries(request.headers.entries());
|
|
518
523
|
const { data: requestData, type, headers, } = await convertBody((options === null || options === void 0 ? void 0 : options.body) || body || undefined, optionHeaders['Content-Type'] || optionHeaders['content-type']);
|
|
519
524
|
const nativeResponse = await cap.nativePromise('CapacitorHttp', 'request', {
|
|
@@ -564,20 +569,7 @@ var nativeBridge = (function (exports) {
|
|
|
564
569
|
value: xhr.method,
|
|
565
570
|
writable: true,
|
|
566
571
|
},
|
|
567
|
-
readyState: {
|
|
568
|
-
get: function () {
|
|
569
|
-
var _a;
|
|
570
|
-
return (_a = this._readyState) !== null && _a !== void 0 ? _a : 0;
|
|
571
|
-
},
|
|
572
|
-
set: function (val) {
|
|
573
|
-
this._readyState = val;
|
|
574
|
-
setTimeout(() => {
|
|
575
|
-
this.dispatchEvent(new Event('readystatechange'));
|
|
576
|
-
});
|
|
577
|
-
},
|
|
578
|
-
},
|
|
579
572
|
});
|
|
580
|
-
xhr.readyState = 0;
|
|
581
573
|
const prototype = win.CapacitorWebXMLHttpRequest.prototype;
|
|
582
574
|
const isProgressEventAvailable = () => typeof ProgressEvent !== 'undefined' &&
|
|
583
575
|
ProgressEvent.prototype instanceof Event;
|
|
@@ -607,6 +599,20 @@ var nativeBridge = (function (exports) {
|
|
|
607
599
|
this._url = createProxyUrl(this._url, win);
|
|
608
600
|
return win.CapacitorWebXMLHttpRequest.open.call(this, method, this._url);
|
|
609
601
|
}
|
|
602
|
+
Object.defineProperties(this, {
|
|
603
|
+
readyState: {
|
|
604
|
+
get: function () {
|
|
605
|
+
var _a;
|
|
606
|
+
return (_a = this._readyState) !== null && _a !== void 0 ? _a : 0;
|
|
607
|
+
},
|
|
608
|
+
set: function (val) {
|
|
609
|
+
this._readyState = val;
|
|
610
|
+
setTimeout(() => {
|
|
611
|
+
this.dispatchEvent(new Event('readystatechange'));
|
|
612
|
+
});
|
|
613
|
+
},
|
|
614
|
+
},
|
|
615
|
+
});
|
|
610
616
|
setTimeout(() => {
|
|
611
617
|
this.dispatchEvent(new Event('loadstart'));
|
|
612
618
|
});
|
package/package.json
CHANGED