@capacitor/ios 4.8.0 → 4.8.2

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.
@@ -93,7 +93,66 @@ open class CapacitorUrlRequest: NSObject, URLSessionTaskDelegate {
93
93
  return normalized[index.lowercased()]
94
94
  }
95
95
 
96
- public func getRequestData(_ body: JSValue, _ contentType: String) throws -> Data? {
96
+ func getRequestDataFromFormData(_ data: JSValue) throws -> Data? {
97
+ guard let list = data as? JSArray else {
98
+ // Throw, other data types explicitly not supported.
99
+ throw CapacitorUrlRequestError.serializationError("Data must be an array for FormData")
100
+ }
101
+
102
+ var data = Data()
103
+
104
+ // Update the contentType with the new boundary
105
+ let boundary = UUID().uuidString
106
+ let contentType = "multipart/form-data; boundary=\(boundary)"
107
+ request.setValue(contentType, forHTTPHeaderField: "Content-Type")
108
+ headers["Content-Type"] = contentType
109
+
110
+ for entry in list {
111
+ guard let item = entry as? [String: String] else {
112
+ throw CapacitorUrlRequestError.serializationError("Data must be an array for FormData")
113
+ }
114
+
115
+ let type = item["type"]
116
+ let key = item["key"]
117
+ let value = item["value"]!
118
+
119
+ if type == "base64File" {
120
+ let fileName = item["fileName"]
121
+ let fileContentType = item["contentType"]
122
+
123
+ data.append("\r\n--\(boundary)\r\n".data(using: .utf8)!)
124
+ data.append("Content-Disposition: form-data; name=\"\(key!)\"; filename=\"\(fileName!)\"\r\n".data(using: .utf8)!)
125
+ data.append("Content-Type: \(fileContentType!)\r\n".data(using: .utf8)!)
126
+ data.append("Content-Transfer-Encoding: binary\r\n".data(using: .utf8)!)
127
+ data.append("\r\n".data(using: .utf8)!)
128
+
129
+ data.append(Data(base64Encoded: value)!)
130
+
131
+ data.append("\r\n".data(using: .utf8)!)
132
+ } else if type == "string" {
133
+ data.append("\r\n--\(boundary)\r\n".data(using: .utf8)!)
134
+ data.append("Content-Disposition: form-data; name=\"\(key!)\"\r\n".data(using: .utf8)!)
135
+ data.append(value.data(using: .utf8)!)
136
+ data.append("\r\n".data(using: .utf8)!)
137
+ }
138
+
139
+ }
140
+
141
+ data.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)
142
+
143
+ return data
144
+ }
145
+
146
+ public func getRequestData(_ body: JSValue, _ contentType: String, _ dataType: String) throws -> Data? {
147
+ if dataType == "file" {
148
+ guard let stringData = body as? String else {
149
+ throw CapacitorUrlRequestError.serializationError("[ data ] argument could not be parsed as string")
150
+ }
151
+ return Data(base64Encoded: stringData)
152
+ } else if dataType == "formData" {
153
+ return try getRequestDataFromFormData(body)
154
+ }
155
+
97
156
  // If data can be parsed directly as a string, return that without processing.
98
157
  if let strVal = try? getRequestDataAsString(body) {
99
158
  return strVal
@@ -125,11 +184,11 @@ open class CapacitorUrlRequest: NSObject, URLSessionTaskDelegate {
125
184
  }
126
185
  }
127
186
 
128
- public func setRequestBody(_ body: JSValue) throws {
187
+ public func setRequestBody(_ body: JSValue, _ dataType: String) throws {
129
188
  let contentType = self.getRequestHeader("Content-Type") as? String
130
189
 
131
190
  if contentType != nil {
132
- request.httpBody = try getRequestData(body, contentType!)
191
+ request.httpBody = try getRequestData(body, contentType!, dataType)
133
192
  }
134
193
  }
135
194
 
@@ -151,6 +151,7 @@ open class HttpRequestHandler {
151
151
  let responseType = call.getString("responseType") ?? "text"
152
152
  let connectTimeout = call.getDouble("connectTimeout")
153
153
  let readTimeout = call.getDouble("readTimeout")
154
+ let dataType = call.getString("dataType") ?? "any"
154
155
 
155
156
  if urlString == urlString.removingPercentEncoding {
156
157
  guard let encodedUrlString = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else { throw URLError(.badURL) }
@@ -172,7 +173,7 @@ open class HttpRequestHandler {
172
173
 
173
174
  if let data = call.options["data"] as? JSValue {
174
175
  do {
175
- try request.setRequestBody(data)
176
+ try request.setRequestBody(data, dataType)
176
177
  } catch {
177
178
  // Explicitly reject if the http request body was not set successfully,
178
179
  // so as to not send a known malformed request, and to provide the developer with additional context.
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>NSPrivacyCollectedDataTypes</key>
6
+ <array/>
7
+ <key>NSPrivacyTrackingDomains</key>
8
+ <array/>
9
+ <key>NSPrivacyTracking</key>
10
+ <false/>
11
+ <key>NSPrivacyAccessedAPITypes</key>
12
+ <array>
13
+ <dict>
14
+ <key>NSPrivacyAccessedAPIType</key>
15
+ <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
16
+ <key>NSPrivacyAccessedAPITypeReasons</key>
17
+ <array>
18
+ <string>CA92.1</string>
19
+ </array>
20
+ </dict>
21
+ </array>
22
+ </dict>
23
+ </plist>
@@ -52,7 +52,7 @@ internal extension WKWebView {
52
52
  let swizzleFourArgClosure = { (method: Method, selector: Selector) in
53
53
  let originalImp: IMP = method_getImplementation(method)
54
54
  let original: FourArgClosureType = unsafeBitCast(originalImp, to: FourArgClosureType.self)
55
- let block : @convention(block) (Any, UnsafeRawPointer, Bool, Bool, Any?) -> Void = { (me, arg0, arg1, arg2, arg3) in
55
+ let block: @convention(block) (Any, UnsafeRawPointer, Bool, Bool, Any?) -> Void = { (me, arg0, arg1, arg2, arg3) in
56
56
  if let webview = containingWebView(me), let flag = webview.capacitor.keyboardShouldRequireUserInteraction {
57
57
  original(me, selector, arg0, !flag, arg2, arg3)
58
58
  } else {
@@ -66,7 +66,7 @@ internal extension WKWebView {
66
66
  let swizzleFiveArgClosure = { (method: Method, selector: Selector) in
67
67
  let originalImp: IMP = method_getImplementation(method)
68
68
  let original: FiveArgClosureType = unsafeBitCast(originalImp, to: FiveArgClosureType.self)
69
- let block : @convention(block) (Any, UnsafeRawPointer, Bool, Bool, Bool, Any?) -> Void = { (me, arg0, arg1, arg2, arg3, arg4) in
69
+ let block: @convention(block) (Any, UnsafeRawPointer, Bool, Bool, Bool, Any?) -> Void = { (me, arg0, arg1, arg2, arg3, arg4) in
70
70
  if let webview = containingWebView(me), let flag = webview.capacitor.keyboardShouldRequireUserInteraction {
71
71
  original(me, selector, arg0, !flag, arg2, arg3, arg4)
72
72
  } else {
@@ -35,6 +35,57 @@ var nativeBridge = (function (exports) {
35
35
  // For removing exports for iOS/Android, keep let for reassignment
36
36
  // eslint-disable-next-line
37
37
  let dummy = {};
38
+ const readFileAsBase64 = (file) => new Promise((resolve, reject) => {
39
+ const reader = new FileReader();
40
+ reader.onloadend = () => {
41
+ const data = reader.result;
42
+ resolve(btoa(data));
43
+ };
44
+ reader.onerror = reject;
45
+ reader.readAsBinaryString(file);
46
+ });
47
+ const convertFormData = async (formData) => {
48
+ const newFormData = [];
49
+ for (const pair of formData.entries()) {
50
+ const [key, value] = pair;
51
+ if (value instanceof File) {
52
+ const base64File = await readFileAsBase64(value);
53
+ newFormData.push({
54
+ key,
55
+ value: base64File,
56
+ type: 'base64File',
57
+ contentType: value.type,
58
+ fileName: value.name,
59
+ });
60
+ }
61
+ else {
62
+ newFormData.push({ key, value, type: 'string' });
63
+ }
64
+ }
65
+ return newFormData;
66
+ };
67
+ const convertBody = async (body) => {
68
+ if (body instanceof FormData) {
69
+ const formData = await convertFormData(body);
70
+ const boundary = `${Date.now()}`;
71
+ return {
72
+ data: formData,
73
+ type: 'formData',
74
+ headers: {
75
+ 'Content-Type': `multipart/form-data; boundary=--${boundary}`,
76
+ },
77
+ };
78
+ }
79
+ else if (body instanceof File) {
80
+ const fileData = await readFileAsBase64(body);
81
+ return {
82
+ data: fileData,
83
+ type: 'file',
84
+ headers: { 'Content-Type': body.type },
85
+ };
86
+ }
87
+ return { data: body, type: 'json' };
88
+ };
38
89
  const initBridge = (w) => {
39
90
  const getPlatformId = (win) => {
40
91
  var _a, _b;
@@ -374,15 +425,17 @@ var nativeBridge = (function (exports) {
374
425
  console.time(tag);
375
426
  try {
376
427
  // intercept request & pass to the bridge
377
- let headers = options === null || options === void 0 ? void 0 : options.headers;
428
+ const { data: requestData, type, headers, } = await convertBody((options === null || options === void 0 ? void 0 : options.body) || undefined);
429
+ let optionHeaders = options === null || options === void 0 ? void 0 : options.headers;
378
430
  if ((options === null || options === void 0 ? void 0 : options.headers) instanceof Headers) {
379
- headers = Object.fromEntries(options.headers.entries());
431
+ optionHeaders = Object.fromEntries(options.headers.entries());
380
432
  }
381
433
  const nativeResponse = await cap.nativePromise('CapacitorHttp', 'request', {
382
434
  url: resource,
383
435
  method: (options === null || options === void 0 ? void 0 : options.method) ? options.method : undefined,
384
- data: (options === null || options === void 0 ? void 0 : options.body) ? options.body : undefined,
385
- headers: headers,
436
+ data: requestData,
437
+ dataType: type,
438
+ headers: Object.assign(Object.assign({}, headers), optionHeaders),
386
439
  });
387
440
  const data = typeof nativeResponse.data === 'string'
388
441
  ? nativeResponse.data
@@ -512,45 +565,49 @@ var nativeBridge = (function (exports) {
512
565
  console.time(tag);
513
566
  try {
514
567
  this.readyState = 2;
515
- // intercept request & pass to the bridge
516
- cap
517
- .nativePromise('CapacitorHttp', 'request', {
518
- url: this._url,
519
- method: this._method,
520
- data: body !== null ? body : undefined,
521
- headers: this._headers != null && Object.keys(this._headers).length > 0
568
+ convertBody(body).then(({ data, type, headers }) => {
569
+ const otherHeaders = this._headers != null && Object.keys(this._headers).length > 0
522
570
  ? this._headers
523
- : undefined,
524
- })
525
- .then((nativeResponse) => {
526
- // intercept & parse response before returning
527
- if (this.readyState == 2) {
571
+ : undefined;
572
+ // intercept request & pass to the bridge
573
+ cap
574
+ .nativePromise('CapacitorHttp', 'request', {
575
+ url: this._url,
576
+ method: this._method,
577
+ data: data !== null ? data : undefined,
578
+ headers: Object.assign(Object.assign({}, headers), otherHeaders),
579
+ dataType: type,
580
+ })
581
+ .then((nativeResponse) => {
582
+ // intercept & parse response before returning
583
+ if (this.readyState == 2) {
584
+ this.dispatchEvent(new Event('loadstart'));
585
+ this._headers = nativeResponse.headers;
586
+ this.status = nativeResponse.status;
587
+ this.response = nativeResponse.data;
588
+ this.responseText =
589
+ typeof nativeResponse.data === 'string'
590
+ ? nativeResponse.data
591
+ : JSON.stringify(nativeResponse.data);
592
+ this.responseURL = nativeResponse.url;
593
+ this.readyState = 4;
594
+ this.dispatchEvent(new Event('load'));
595
+ this.dispatchEvent(new Event('loadend'));
596
+ }
597
+ console.timeEnd(tag);
598
+ })
599
+ .catch((error) => {
528
600
  this.dispatchEvent(new Event('loadstart'));
529
- this._headers = nativeResponse.headers;
530
- this.status = nativeResponse.status;
531
- this.response = nativeResponse.data;
532
- this.responseText =
533
- typeof nativeResponse.data === 'string'
534
- ? nativeResponse.data
535
- : JSON.stringify(nativeResponse.data);
536
- this.responseURL = nativeResponse.url;
601
+ this.status = error.status;
602
+ this._headers = error.headers;
603
+ this.response = error.data;
604
+ this.responseText = JSON.stringify(error.data);
605
+ this.responseURL = error.url;
537
606
  this.readyState = 4;
538
- this.dispatchEvent(new Event('load'));
607
+ this.dispatchEvent(new Event('error'));
539
608
  this.dispatchEvent(new Event('loadend'));
540
- }
541
- console.timeEnd(tag);
542
- })
543
- .catch((error) => {
544
- this.dispatchEvent(new Event('loadstart'));
545
- this.status = error.status;
546
- this._headers = error.headers;
547
- this.response = error.data;
548
- this.responseText = JSON.stringify(error.data);
549
- this.responseURL = error.url;
550
- this.readyState = 4;
551
- this.dispatchEvent(new Event('error'));
552
- this.dispatchEvent(new Event('loadend'));
553
- console.timeEnd(tag);
609
+ console.timeEnd(tag);
610
+ });
554
611
  });
555
612
  }
556
613
  catch (error) {
package/Capacitor.podspec CHANGED
@@ -19,7 +19,7 @@ Pod::Spec.new do |s|
19
19
  s.source_files = "#{prefix}Capacitor/Capacitor/*.{swift,h,m}", "#{prefix}Capacitor/Capacitor/Plugins/*.{swift,h,m}",
20
20
  "#{prefix}Capacitor/Capacitor/Plugins/**/*.{swift,h,m}"
21
21
  s.module_map = "#{prefix}Capacitor/Capacitor/Capacitor.modulemap"
22
- s.resources = ["#{prefix}Capacitor/Capacitor/assets/native-bridge.js"]
22
+ s.resources = ["#{prefix}Capacitor/Capacitor/assets/native-bridge.js", "#{prefix}Capacitor/Capacitor/PrivacyInfo.xcprivacy"]
23
23
  s.dependency 'CapacitorCordova'
24
24
  s.swift_version = '5.1'
25
25
  end
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>NSPrivacyTrackingDomains</key>
6
+ <array/>
7
+ <key>NSPrivacyCollectedDataTypes</key>
8
+ <array/>
9
+ <key>NSPrivacyTracking</key>
10
+ <false/>
11
+ <key>NSPrivacyAccessedAPITypes</key>
12
+ <array/>
13
+ </dict>
14
+ </plist>
@@ -20,6 +20,7 @@ Pod::Spec.new do |s|
20
20
  s.public_header_files = "#{prefix}CapacitorCordova/CapacitorCordova/Classes/Public/*.h",
21
21
  "#{prefix}CapacitorCordova/CapacitorCordova/CapacitorCordova.h"
22
22
  s.module_map = "#{prefix}CapacitorCordova/CapacitorCordova/CapacitorCordova.modulemap"
23
+ s.resources = ["#{prefix}CapacitorCordova/CapacitorCordova/PrivacyInfo.xcprivacy"]
23
24
  s.requires_arc = true
24
25
  s.framework = 'WebKit'
25
26
  end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capacitor/ios",
3
- "version": "4.8.0",
3
+ "version": "4.8.2",
4
4
  "description": "Capacitor: Cross-platform apps with JavaScript and the web",
5
5
  "homepage": "https://capacitorjs.com",
6
6
  "author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
@@ -25,10 +25,9 @@
25
25
  "xc:build:CapacitorCordova": "cd CapacitorCordova && xcodebuild && cd .."
26
26
  },
27
27
  "peerDependencies": {
28
- "@capacitor/core": "^4.7.0"
28
+ "@capacitor/core": "^4.8.0"
29
29
  },
30
30
  "publishConfig": {
31
31
  "access": "public"
32
- },
33
- "gitHead": "b43c69d9d6530fa1a0cc461d6db14859865ed995"
32
+ }
34
33
  }
package/CHANGELOG.md DELETED
@@ -1,776 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [4.8.0](https://github.com/ionic-team/capacitor/compare/4.7.3...4.8.0) (2023-04-26)
7
-
8
-
9
- ### Bug Fixes
10
-
11
- * **http:** copy native response url to fetch response ([42d2eb3](https://github.com/ionic-team/capacitor/commit/42d2eb3c3c04e087b88df7252cd2c323b00a3f95))
12
-
13
-
14
- ### Features
15
-
16
- * **ios:** add webContentsDebuggingEnabled configuration ([#6500](https://github.com/ionic-team/capacitor/issues/6500)) ([b9e345a](https://github.com/ionic-team/capacitor/commit/b9e345a8f02229650eabc829d49c9d9e7227eb57))
17
-
18
-
19
-
20
-
21
-
22
- ## [4.7.3](https://github.com/ionic-team/capacitor/compare/4.7.2...4.7.3) (2023-03-31)
23
-
24
- **Note:** Version bump only for package @capacitor/ios
25
-
26
-
27
-
28
-
29
-
30
- ## [4.7.2](https://github.com/ionic-team/capacitor/compare/4.7.1...4.7.2) (2023-03-31)
31
-
32
- **Note:** Version bump only for package @capacitor/ios
33
-
34
-
35
-
36
-
37
-
38
- ## [4.7.1](https://github.com/ionic-team/capacitor/compare/4.7.0...4.7.1) (2023-03-16)
39
-
40
-
41
- ### Bug Fixes
42
-
43
- * **iOS:** Separate cookies by ; rather than ; when accessing through document.cookie (Cap 4.x) ([#6380](https://github.com/ionic-team/capacitor/issues/6380)) ([1902b77](https://github.com/ionic-team/capacitor/commit/1902b77213e36bd9899634e7c86c9a02aab39932))
44
-
45
-
46
-
47
-
48
-
49
- # [4.7.0](https://github.com/ionic-team/capacitor/compare/4.6.3...4.7.0) (2023-02-22)
50
-
51
-
52
- ### Bug Fixes
53
-
54
- * handle fetch headers that are Headers objects ([#6320](https://github.com/ionic-team/capacitor/issues/6320)) ([cb00e49](https://github.com/ionic-team/capacitor/commit/cb00e4952acca8e877555f30b2190f6685d25934))
55
- * **ios:** Avoid double encoding on http urls ([#6288](https://github.com/ionic-team/capacitor/issues/6288)) ([4768085](https://github.com/ionic-team/capacitor/commit/4768085414768bb2c013afcc6c645664893cd297))
56
- * **ios:** Correctly Attach Headers to Request ([#6303](https://github.com/ionic-team/capacitor/issues/6303)) ([a3f875c](https://github.com/ionic-team/capacitor/commit/a3f875cf42e111fde07d6e87643264b19ed77573))
57
-
58
-
59
-
60
-
61
-
62
- ## [4.6.3](https://github.com/ionic-team/capacitor/compare/4.6.2...4.6.3) (2023-02-03)
63
-
64
-
65
- ### Bug Fixes
66
-
67
- * **ios:** crash when http headers contain numbers ([#6251](https://github.com/ionic-team/capacitor/issues/6251)) ([028c556](https://github.com/ionic-team/capacitor/commit/028c556a50b41ee99fe8f4f1aa2f42d3fd57f92d))
68
-
69
-
70
-
71
-
72
-
73
- ## [4.6.2](https://github.com/ionic-team/capacitor/compare/4.6.1...4.6.2) (2023-01-17)
74
-
75
-
76
- ### Bug Fixes
77
-
78
- * **ios:** CapacitorHttp cannot use delete method ([#6220](https://github.com/ionic-team/capacitor/issues/6220)) ([4d238a9](https://github.com/ionic-team/capacitor/commit/4d238a9e0dcf1e3e8c105c3aa4c7361abf16398e))
79
- * **ios:** encode whitespace in http plugin urls ([#6169](https://github.com/ionic-team/capacitor/issues/6169)) ([dccb0a9](https://github.com/ionic-team/capacitor/commit/dccb0a99850c7c878906156a509ecd675836ef1a))
80
- * **ios/android:** better http error handling ([#6208](https://github.com/ionic-team/capacitor/issues/6208)) ([7d4d70a](https://github.com/ionic-team/capacitor/commit/7d4d70a0500b7996c710c0762907f44bdf27c92b))
81
-
82
-
83
-
84
-
85
-
86
- ## [4.6.1](https://github.com/ionic-team/capacitor/compare/4.6.0...4.6.1) (2022-12-05)
87
-
88
- **Note:** Version bump only for package @capacitor/ios
89
-
90
-
91
-
92
-
93
-
94
- # [4.6.0](https://github.com/ionic-team/capacitor/compare/4.5.0...4.6.0) (2022-12-01)
95
-
96
-
97
- ### Bug Fixes
98
-
99
- * **cookies:** Use Set-Cookie headers to persist cookies ([57f8b39](https://github.com/ionic-team/capacitor/commit/57f8b39d7f4c5ee0e5e5cb316913e9450a81d22b))
100
-
101
-
102
- ### Features
103
-
104
- * **ios:** Plugin Registration and Plugin Instance Support ([#6072](https://github.com/ionic-team/capacitor/issues/6072)) ([9f1d863](https://github.com/ionic-team/capacitor/commit/9f1d863c1222096334a0dd05f39ce7f984a2763a))
105
-
106
-
107
-
108
-
109
-
110
- # [4.5.0](https://github.com/ionic-team/capacitor/compare/4.4.0...4.5.0) (2022-11-16)
111
-
112
-
113
- ### Bug Fixes
114
-
115
- * **cli/ios:** Read handleApplicationNotifications configuration option ([#6030](https://github.com/ionic-team/capacitor/issues/6030)) ([99ccf18](https://github.com/ionic-team/capacitor/commit/99ccf181f6ee8a00ed97bdbf9076e2b2ea27cd57))
116
-
117
-
118
- ### Features
119
-
120
- * **cookies:** add get cookies plugin method ([ba1e770](https://github.com/ionic-team/capacitor/commit/ba1e7702a3338714aee24388c0afea39706c9341))
121
-
122
-
123
-
124
-
125
-
126
- # [4.4.0](https://github.com/ionic-team/capacitor/compare/4.3.0...4.4.0) (2022-10-21)
127
-
128
-
129
- ### Bug Fixes
130
-
131
- * **cookies:** make document.cookie setter synchronous ([2272abf](https://github.com/ionic-team/capacitor/commit/2272abf3d3d9dc82d9ca0d03b17e2b78f11f61fc))
132
- * **http:** fix local http requests on native platforms ([c4e040a](https://github.com/ionic-team/capacitor/commit/c4e040a6f8c6b54bac6ae320e5f0f008604fe50f))
133
-
134
-
135
-
136
-
137
-
138
- # [4.3.0](https://github.com/ionic-team/capacitor/compare/4.2.0...4.3.0) (2022-09-21)
139
-
140
-
141
- ### Bug Fixes
142
-
143
- * **core:** Exception object was not set on Cap ([#5917](https://github.com/ionic-team/capacitor/issues/5917)) ([9ca27a4](https://github.com/ionic-team/capacitor/commit/9ca27a4f8441b368f8bf9d97dda57b1a55ac0e4e))
144
-
145
-
146
- ### Features
147
-
148
- * Capacitor Cookies & Capacitor Http core plugins ([d4047cf](https://github.com/ionic-team/capacitor/commit/d4047cfa947676777f400389a8d65defae140b45))
149
-
150
-
151
-
152
-
153
-
154
- # [4.2.0](https://github.com/ionic-team/capacitor/compare/4.1.0...4.2.0) (2022-09-08)
155
-
156
- **Note:** Version bump only for package @capacitor/ios
157
-
158
-
159
-
160
-
161
-
162
- # [4.1.0](https://github.com/ionic-team/capacitor/compare/4.0.1...4.1.0) (2022-08-18)
163
-
164
-
165
- ### Bug Fixes
166
-
167
- * **ios:** Prevent Xcode 14 warning on CAPWebView ([#5821](https://github.com/ionic-team/capacitor/issues/5821)) ([66954ef](https://github.com/ionic-team/capacitor/commit/66954ef6bc93f2038d85a386ef2f8b582af11bc3))
168
- * **ios:** return proper mimeType on M1 x86_64 simulators ([#5853](https://github.com/ionic-team/capacitor/issues/5853)) ([325b6fe](https://github.com/ionic-team/capacitor/commit/325b6fe83939efaaef44c7e8624e33de742a57e2)), closes [#5793](https://github.com/ionic-team/capacitor/issues/5793)
169
-
170
-
171
- ### Features
172
-
173
- * **ios:** Add `setServerBasePath(_:)` to CAPBridgeProtocol ([#5860](https://github.com/ionic-team/capacitor/issues/5860)) ([76f28e7](https://github.com/ionic-team/capacitor/commit/76f28e70a5c0a03e4c6b9a93a0c068666a2c38ff))
174
-
175
-
176
-
177
-
178
-
179
- ## [4.0.1](https://github.com/ionic-team/capacitor/compare/4.0.0...4.0.1) (2022-07-28)
180
-
181
-
182
- ### Bug Fixes
183
-
184
- * **ios:** publish Podfile script ([#5799](https://github.com/ionic-team/capacitor/issues/5799)) ([604f03a](https://github.com/ionic-team/capacitor/commit/604f03a29bc500d2841987d0a0f1b20d34fba7d6))
185
-
186
-
187
-
188
-
189
-
190
- # [4.0.0](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.2...4.0.0) (2022-07-27)
191
-
192
-
193
- ### Bug Fixes
194
-
195
- * **ios:** error data is optional ([#5782](https://github.com/ionic-team/capacitor/issues/5782)) ([da48d79](https://github.com/ionic-team/capacitor/commit/da48d798c3463de9de188ae6a6475fd6afba6091))
196
-
197
-
198
- ### Features
199
-
200
- * **android:** Add Optional Data Param for Error Object ([#5719](https://github.com/ionic-team/capacitor/issues/5719)) ([174172b](https://github.com/ionic-team/capacitor/commit/174172b6c64dc9117c48ed0e20c25e0b6c2fb625))
201
- * **android:** Use addWebMessageListener where available ([#5427](https://github.com/ionic-team/capacitor/issues/5427)) ([c2dfe80](https://github.com/ionic-team/capacitor/commit/c2dfe808446717412b35e82713d123b7a052f264))
202
- * **ios:** Add overrideable router var for CAPWebView. ([#5743](https://github.com/ionic-team/capacitor/issues/5743)) ([c1de1c0](https://github.com/ionic-team/capacitor/commit/c1de1c0138aad188a760118e35983d10d257f8e7))
203
- * **iOS:** post install script for deployment target ([#5783](https://github.com/ionic-team/capacitor/issues/5783)) ([f5afa94](https://github.com/ionic-team/capacitor/commit/f5afa94b3b9c246d87b2af03359840f503bace90))
204
- * Add option for custom error page ([#5723](https://github.com/ionic-team/capacitor/issues/5723)) ([e8bdef3](https://github.com/ionic-team/capacitor/commit/e8bdef3b4634e4ad45fa8fc34c7c0ab8dfa383f3))
205
-
206
-
207
-
208
-
209
-
210
- # [4.0.0-beta.2](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.1...4.0.0-beta.2) (2022-07-08)
211
-
212
-
213
- ### Bug Fixes
214
-
215
- * **ios:** Add check for both serverURL and localURL in navigation ([#5736](https://github.com/ionic-team/capacitor/issues/5736)) ([8e824f3](https://github.com/ionic-team/capacitor/commit/8e824f33ad4df898fb8c0936a8f5e9041832a5c5))
216
- * **ios:** properly deliver retained events after listener re-add [#5732](https://github.com/ionic-team/capacitor/issues/5732) ([c5d6328](https://github.com/ionic-team/capacitor/commit/c5d632831924a1bcc868bc46b42f7ff619408752))
217
-
218
-
219
- ### Features
220
-
221
- * **ios:** Add `setServerBasePath(path:)` to CAPWebView ([#5742](https://github.com/ionic-team/capacitor/issues/5742)) ([1afbf8a](https://github.com/ionic-team/capacitor/commit/1afbf8a9dd0b8f7b1ac439d24e5d8ba26f786318))
222
- * Add CapWebView ([#5715](https://github.com/ionic-team/capacitor/issues/5715)) ([143d266](https://github.com/ionic-team/capacitor/commit/143d266ef0a818bac59dbbdaeda3b5c382ebfa1d))
223
-
224
-
225
-
226
-
227
-
228
- # [4.0.0-beta.1](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.0...4.0.0-beta.1) (2022-06-27)
229
-
230
-
231
- ### Bug Fixes
232
-
233
- * **ios:** Remove Cordova as an embedded framework ([#5709](https://github.com/ionic-team/capacitor/issues/5709)) ([bbf6d24](https://github.com/ionic-team/capacitor/commit/bbf6d248bf9217a5c5c6c15c7bcfeda209aba5b1))
234
-
235
-
236
- ### Features
237
-
238
- * **ios:** Allow to configure popover size ([#5717](https://github.com/ionic-team/capacitor/issues/5717)) ([ca1a125](https://github.com/ionic-team/capacitor/commit/ca1a125e5ab05d6066dd303bc75e99dfe21f210a))
239
-
240
-
241
-
242
-
243
-
244
- # [4.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/3.6.0...4.0.0-beta.0) (2022-06-17)
245
-
246
-
247
- ### Bug Fixes
248
-
249
- * **ios:** make removeAllListeners return a promise ([#5526](https://github.com/ionic-team/capacitor/issues/5526)) ([815f71b](https://github.com/ionic-team/capacitor/commit/815f71b6b62f6c4d5f66e6a36c190bb00a96fdcc))
250
-
251
-
252
- ### Features
253
-
254
- * **ios:** add getConfig to CAPPlugin ([#5495](https://github.com/ionic-team/capacitor/issues/5495)) ([224a9d0](https://github.com/ionic-team/capacitor/commit/224a9d075629d9c9da9ddc658eb282617fc46d09))
255
- * **ios:** Add preferredContentMode configuration option ([#5583](https://github.com/ionic-team/capacitor/issues/5583)) ([5b6dfa3](https://github.com/ionic-team/capacitor/commit/5b6dfa3fe29c85632546b299f03cc04a77cf7475))
256
- * **ios:** Support of range requests on WebViewAssetHandler ([#5659](https://github.com/ionic-team/capacitor/issues/5659)) ([348c08d](https://github.com/ionic-team/capacitor/commit/348c08d511e9d57a1b2ecedc3290c65fa9ba3924))
257
-
258
-
259
-
260
-
261
-
262
- # [3.6.0](https://github.com/ionic-team/capacitor/compare/3.5.1...3.6.0) (2022-06-17)
263
-
264
-
265
- ### Bug Fixes
266
-
267
- * **ios:** Use `URL(fileURLWithPath:)` instead of `URL(string:)` ([#5603](https://github.com/ionic-team/capacitor/issues/5603)) ([5fac1b2](https://github.com/ionic-team/capacitor/commit/5fac1b2da5aa5882087716cb2aa862d89173f4a1))
268
-
269
-
270
- ### Features
271
-
272
- * **iOS, Android:** add AppUUID Lib for plugins ([#5690](https://github.com/ionic-team/capacitor/issues/5690)) ([05e76cf](https://github.com/ionic-team/capacitor/commit/05e76cf526a44e07fa75f9482fa2223a13918638))
273
-
274
-
275
-
276
-
277
-
278
- # [4.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/3.4.1...4.0.0-alpha.2) (2022-05-12)
279
-
280
-
281
- ### Bug Fixes
282
-
283
- * **ios:** make removeAllListeners return a promise ([#5526](https://github.com/ionic-team/capacitor/issues/5526)) ([815f71b](https://github.com/ionic-team/capacitor/commit/815f71b6b62f6c4d5f66e6a36c190bb00a96fdcc))
284
-
285
-
286
- ### Features
287
-
288
- * **ios:** add getConfig to CAPPlugin ([#5495](https://github.com/ionic-team/capacitor/issues/5495)) ([224a9d0](https://github.com/ionic-team/capacitor/commit/224a9d075629d9c9da9ddc658eb282617fc46d09))
289
- * **ios:** Add preferredContentMode configuration option ([#5583](https://github.com/ionic-team/capacitor/issues/5583)) ([5b6dfa3](https://github.com/ionic-team/capacitor/commit/5b6dfa3fe29c85632546b299f03cc04a77cf7475))
290
-
291
-
292
-
293
-
294
-
295
-
296
- ## [3.5.1](https://github.com/ionic-team/capacitor/compare/3.5.0...3.5.1) (2022-05-04)
297
-
298
- **Note:** Version bump only for package @capacitor/ios
299
-
300
-
301
-
302
-
303
-
304
- # [3.5.0](https://github.com/ionic-team/capacitor/compare/3.4.3...3.5.0) (2022-04-22)
305
-
306
-
307
- ### Features
308
-
309
- * **ios:** Add overrideable routing for CAPBridgeViewController subclasses ([#5546](https://github.com/ionic-team/capacitor/issues/5546)) ([8875d5e](https://github.com/ionic-team/capacitor/commit/8875d5e2721e8a8ee763ce70cb672db383f36efa))
310
-
311
-
312
-
313
-
314
-
315
- # [4.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/3.4.1...4.0.0-alpha.1) (2022-03-25)
316
-
317
-
318
- ### Features
319
-
320
- * **ios:** add getConfig to CAPPlugin ([#5495](https://github.com/ionic-team/capacitor/issues/5495)) ([224a9d0](https://github.com/ionic-team/capacitor/commit/224a9d075629d9c9da9ddc658eb282617fc46d09))
321
-
322
-
323
-
324
-
325
-
326
- ## [3.4.3](https://github.com/ionic-team/capacitor/compare/3.4.2...3.4.3) (2022-03-04)
327
-
328
- **Note:** Version bump only for package @capacitor/ios
329
-
330
-
331
-
332
-
333
-
334
- ## [3.4.2](https://github.com/ionic-team/capacitor/compare/3.4.1...3.4.2) (2022-03-03)
335
-
336
- **Note:** Version bump only for package @capacitor/ios
337
-
338
-
339
-
340
-
341
- ## [3.4.1](https://github.com/ionic-team/capacitor/compare/3.4.0...3.4.1) (2022-02-09)
342
-
343
-
344
- ### Bug Fixes
345
-
346
- * **ios:** Reload webView on webViewWebContentProcessDidTerminate ([#5391](https://github.com/ionic-team/capacitor/issues/5391)) ([beebff4](https://github.com/ionic-team/capacitor/commit/beebff4550575c28c233937a11a8eacf5a76411c))
347
-
348
-
349
-
350
-
351
-
352
- # [3.4.0](https://github.com/ionic-team/capacitor/compare/3.3.4...3.4.0) (2022-01-19)
353
-
354
-
355
- ### Features
356
-
357
- * **ios:** Add new iOS 15 Motion permission delegate ([#5317](https://github.com/ionic-team/capacitor/issues/5317)) ([c05a3cb](https://github.com/ionic-team/capacitor/commit/c05a3cbbf02217e3972d5e067970cae18bff3faa))
358
- * **ios:** Add new iOS15 media capture permission delegate ([#5196](https://github.com/ionic-team/capacitor/issues/5196)) ([d8b54ac](https://github.com/ionic-team/capacitor/commit/d8b54ac23414bfe56e50e1254066630a6f87eb0e))
359
-
360
-
361
-
362
-
363
-
364
- ## [3.3.4](https://github.com/ionic-team/capacitor/compare/3.3.3...3.3.4) (2022-01-05)
365
-
366
- **Note:** Version bump only for package @capacitor/ios
367
-
368
-
369
-
370
-
371
-
372
- ## [3.3.3](https://github.com/ionic-team/capacitor/compare/3.3.2...3.3.3) (2021-12-08)
373
-
374
-
375
- ### Bug Fixes
376
-
377
- * **ios:** Present js alert on top of the presented VC ([#5282](https://github.com/ionic-team/capacitor/issues/5282)) ([a53d236](https://github.com/ionic-team/capacitor/commit/a53d236452e99d1e6151e19e313b3d1545957419))
378
-
379
-
380
-
381
-
382
-
383
- ## [3.3.2](https://github.com/ionic-team/capacitor/compare/3.3.1...3.3.2) (2021-11-17)
384
-
385
- **Note:** Version bump only for package @capacitor/ios
386
-
387
-
388
-
389
-
390
-
391
- ## [3.3.1](https://github.com/ionic-team/capacitor/compare/3.3.0...3.3.1) (2021-11-05)
392
-
393
- **Note:** Version bump only for package @capacitor/ios
394
-
395
-
396
-
397
-
398
-
399
- # [3.3.0](https://github.com/ionic-team/capacitor/compare/3.2.5...3.3.0) (2021-11-03)
400
-
401
-
402
- ### Bug Fixes
403
-
404
- * **core:** avoid crash on logging circular objects ([#5186](https://github.com/ionic-team/capacitor/issues/5186)) ([1451ec8](https://github.com/ionic-team/capacitor/commit/1451ec850a9ef73267a032638e73f1fc440647b9))
405
- * **ios:** Avoid CDVScreenOrientationDelegate umbrella header warning ([#5156](https://github.com/ionic-team/capacitor/issues/5156)) ([31ec30d](https://github.com/ionic-team/capacitor/commit/31ec30de193aa3117dbb7eda928ef3a365d5667c))
406
-
407
-
408
-
409
-
410
-
411
- ## [3.2.5](https://github.com/ionic-team/capacitor/compare/3.2.4...3.2.5) (2021-10-13)
412
-
413
-
414
- ### Bug Fixes
415
-
416
- * **ios:** proper handling of allowNavigation with multiple wildcard ([#5096](https://github.com/ionic-team/capacitor/issues/5096)) ([cda17a6](https://github.com/ionic-team/capacitor/commit/cda17a6c1504235c1c1e4826830f1d0e2ef2d35c))
417
-
418
-
419
-
420
-
421
-
422
- ## [3.2.4](https://github.com/ionic-team/capacitor/compare/3.2.3...3.2.4) (2021-09-27)
423
-
424
-
425
- ### Bug Fixes
426
-
427
- * **ios:** Add CDVScreenOrientationDelegate protocol on CAPBridgeViewController ([#5070](https://github.com/ionic-team/capacitor/issues/5070)) ([530477d](https://github.com/ionic-team/capacitor/commit/530477d05e1364931f83a30d61d4f9b5cb687b19))
428
- * **ios:** show correct line number on console logs ([#5073](https://github.com/ionic-team/capacitor/issues/5073)) ([ec41e74](https://github.com/ionic-team/capacitor/commit/ec41e743aa4ba81e791ad446fac461b7f43b46ed))
429
-
430
-
431
-
432
-
433
-
434
- ## [3.2.3](https://github.com/ionic-team/capacitor/compare/3.2.2...3.2.3) (2021-09-15)
435
-
436
- **Note:** Version bump only for package @capacitor/ios
437
-
438
-
439
-
440
-
441
-
442
- ## [3.2.2](https://github.com/ionic-team/capacitor/compare/3.2.1...3.2.2) (2021-09-02)
443
-
444
-
445
- ### Bug Fixes
446
-
447
- * **ios:** fixing podspec source paths ([#5002](https://github.com/ionic-team/capacitor/issues/5002)) ([6004a43](https://github.com/ionic-team/capacitor/commit/6004a43c608a4c967e3444c83954ad2095c3dcfd))
448
-
449
-
450
-
451
-
452
-
453
- ## [3.2.1](https://github.com/ionic-team/capacitor/compare/3.2.0...3.2.1) (2021-09-01)
454
-
455
- **Note:** Version bump only for package @capacitor/ios
456
-
457
-
458
-
459
-
460
-
461
- # [3.2.0](https://github.com/ionic-team/capacitor/compare/3.1.2...3.2.0) (2021-08-18)
462
-
463
- **Note:** Version bump only for package @capacitor/ios
464
-
465
-
466
-
467
-
468
-
469
- ## [3.1.2](https://github.com/ionic-team/capacitor/compare/3.1.1...3.1.2) (2021-07-21)
470
-
471
- **Note:** Version bump only for package @capacitor/ios
472
-
473
-
474
-
475
-
476
-
477
- ## [3.1.1](https://github.com/ionic-team/capacitor/compare/3.1.0...3.1.1) (2021-07-07)
478
-
479
-
480
- ### Bug Fixes
481
-
482
- * fixing peer deps issues in android and ios libs ([310d9f4](https://github.com/ionic-team/capacitor/commit/310d9f486db976cb258fcda5ac893f019667617f))
483
-
484
-
485
-
486
-
487
-
488
- # [3.1.0](https://github.com/ionic-team/capacitor/compare/3.0.2...3.1.0) (2021-07-07)
489
-
490
-
491
- ### Bug Fixes
492
-
493
- * **ios:** isNewBinary is true if defaults have no stored versions ([#4779](https://github.com/ionic-team/capacitor/issues/4779)) ([bd86dbe](https://github.com/ionic-team/capacitor/commit/bd86dbeb74771ed201d0100773babf49e6764818))
494
-
495
-
496
- ### Features
497
-
498
- * **ios:** Add limitsNavigationsToAppBoundDomains configuration option ([#4789](https://github.com/ionic-team/capacitor/issues/4789)) ([2b7016f](https://github.com/ionic-team/capacitor/commit/2b7016f3b4d62fd8c9d03fde2745b3d515bf08b2))
499
-
500
-
501
-
502
-
503
-
504
- ## [3.0.2](https://github.com/ionic-team/capacitor/compare/3.0.1...3.0.2) (2021-06-23)
505
-
506
-
507
- ### Bug Fixes
508
-
509
- * **core:** cordova events not firing ([#4712](https://github.com/ionic-team/capacitor/issues/4712)) ([ca4e3b6](https://github.com/ionic-team/capacitor/commit/ca4e3b62dba6a40e593a1404ba2fe2b416a4ac14))
510
- * **ios:** Use proper native events for cordova events ([#4720](https://github.com/ionic-team/capacitor/issues/4720)) ([99c21dc](https://github.com/ionic-team/capacitor/commit/99c21dcf98f1418d992e845492c730160611783a))
511
-
512
-
513
-
514
-
515
-
516
- ## [3.0.1](https://github.com/ionic-team/capacitor/compare/3.0.0...3.0.1) (2021-06-09)
517
-
518
-
519
- ### Bug Fixes
520
-
521
- * Make isPluginAvailable available on bridge ([#4589](https://github.com/ionic-team/capacitor/issues/4589)) ([151e7a8](https://github.com/ionic-team/capacitor/commit/151e7a899d9646dbd5625a2539fd3f2297349bc5))
522
-
523
-
524
-
525
-
526
-
527
- # [3.0.0](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.4...3.0.0) (2021-05-18)
528
-
529
- **Note:** Version bump only for package @capacitor/ios
530
-
531
-
532
-
533
-
534
-
535
- # [3.0.0-rc.4](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.3...3.0.0-rc.4) (2021-05-18)
536
-
537
- **Note:** Version bump only for package @capacitor/ios
538
-
539
-
540
-
541
-
542
-
543
- # [3.0.0-rc.3](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.2...3.0.0-rc.3) (2021-05-11)
544
-
545
- **Note:** Version bump only for package @capacitor/ios
546
-
547
-
548
-
549
-
550
-
551
- # [3.0.0-rc.2](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.1...3.0.0-rc.2) (2021-05-07)
552
-
553
-
554
- ### Bug Fixes
555
-
556
- * **ios:** Don't auto release saved calls ([#4535](https://github.com/ionic-team/capacitor/issues/4535)) ([4f76933](https://github.com/ionic-team/capacitor/commit/4f76933b98d0461564d3dca9b36d4ea1eba8ed49))
557
-
558
-
559
-
560
-
561
-
562
- # [3.0.0-rc.1](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.0...3.0.0-rc.1) (2021-04-29)
563
-
564
-
565
- ### Bug Fixes
566
-
567
- * generate Capacitor.Plugins object ([#4496](https://github.com/ionic-team/capacitor/issues/4496)) ([1c71b7a](https://github.com/ionic-team/capacitor/commit/1c71b7adb2c325e34d980dbf578dc22afb2c332b))
568
- * **ios:** cordova-plugin-screen-orientation compatibility ([#4367](https://github.com/ionic-team/capacitor/issues/4367)) ([b893a57](https://github.com/ionic-team/capacitor/commit/b893a57aaaf3a16e13db9c33037a12f1a5ac92e0))
569
- * **ios:** fire resume/pause events if no cordova plugins installed ([#4467](https://github.com/ionic-team/capacitor/issues/4467)) ([0105f7a](https://github.com/ionic-team/capacitor/commit/0105f7a2c68f2e7bec16ca23384b6acbb2f3057b))
570
- * **ios:** put cancel button of confirm/prompt on the left ([#4464](https://github.com/ionic-team/capacitor/issues/4464)) ([e5b53aa](https://github.com/ionic-team/capacitor/commit/e5b53aa687a70938994802c7b1367cfcbb1e3811))
571
-
572
-
573
- ### Features
574
-
575
- * Unify logging behavior across environments ([#4416](https://github.com/ionic-team/capacitor/issues/4416)) ([bae0f3d](https://github.com/ionic-team/capacitor/commit/bae0f3d2cee84978636d0f589bc7e2f745671baf))
576
- * **iOS:** Include native-bridge.js as a resource in both Cocoapods and direct build ([#4505](https://github.com/ionic-team/capacitor/issues/4505)) ([c16ccc0](https://github.com/ionic-team/capacitor/commit/c16ccc0118aec57dc23649894bc3bcd83827f89f))
577
-
578
-
579
-
580
-
581
-
582
- # [3.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.6...3.0.0-rc.0) (2021-03-10)
583
-
584
-
585
- ### Features
586
-
587
- * **iOS:** Obj-C convenience accessors on CAPPluginCall ([#4309](https://github.com/ionic-team/capacitor/issues/4309)) ([e3657d7](https://github.com/ionic-team/capacitor/commit/e3657d77647187946ffcd4c4791f4a47c768db7f))
588
- * **iOS:** Unifying saving plugin calls ([#4253](https://github.com/ionic-team/capacitor/issues/4253)) ([de71da5](https://github.com/ionic-team/capacitor/commit/de71da52b80ff52d0234a5301fc6cae675640a33))
589
-
590
-
591
-
592
-
593
-
594
- # [3.0.0-beta.6](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.5...3.0.0-beta.6) (2021-02-27)
595
-
596
- **Note:** Version bump only for package @capacitor/ios
597
-
598
-
599
-
600
-
601
-
602
- # [3.0.0-beta.5](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.4...3.0.0-beta.5) (2021-02-27)
603
-
604
- **Note:** Version bump only for package @capacitor/ios
605
-
606
-
607
-
608
-
609
-
610
- # [3.0.0-beta.4](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.3...3.0.0-beta.4) (2021-02-26)
611
-
612
- **Note:** Version bump only for package @capacitor/ios
613
-
614
-
615
-
616
-
617
-
618
- # [3.0.0-beta.3](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.2...3.0.0-beta.3) (2021-02-18)
619
-
620
-
621
- ### Features
622
-
623
- * **iOS:** Add automatic Date serialization to bridge communication ([#4177](https://github.com/ionic-team/capacitor/issues/4177)) ([3dabc69](https://github.com/ionic-team/capacitor/commit/3dabc69eab1c8ce0b7734acb641b67d349ec3093))
624
-
625
-
626
-
627
-
628
-
629
- # [3.0.0-beta.2](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.1...3.0.0-beta.2) (2021-02-08)
630
-
631
-
632
- ### Bug Fixes
633
-
634
- * address bug in `isPluginAvailable()` for web and native ([#4114](https://github.com/ionic-team/capacitor/issues/4114)) ([2fbd954](https://github.com/ionic-team/capacitor/commit/2fbd95465a321b8f4c50d4daf22a63d8043cee9b))
635
- * **iOS:** preserve null values in bridged types ([#4072](https://github.com/ionic-team/capacitor/issues/4072)) ([6dc691e](https://github.com/ionic-team/capacitor/commit/6dc691e66a07a421d5d4b08028ea05a65b3ddd84))
636
-
637
-
638
-
639
-
640
-
641
- # [3.0.0-beta.1](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.0...3.0.0-beta.1) (2021-01-14)
642
-
643
- **Note:** Version bump only for package @capacitor/ios
644
-
645
-
646
-
647
-
648
-
649
- # [3.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.14...3.0.0-beta.0) (2021-01-13)
650
-
651
- **Note:** Version bump only for package @capacitor/ios
652
-
653
-
654
-
655
-
656
-
657
- # [3.0.0-alpha.14](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.13...3.0.0-alpha.14) (2021-01-13)
658
-
659
- **Note:** Version bump only for package @capacitor/ios
660
-
661
-
662
-
663
-
664
-
665
- # [3.0.0-alpha.13](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.12...3.0.0-alpha.13) (2021-01-13)
666
-
667
-
668
- ### Bug Fixes
669
-
670
- * **iOS:** properly handle date types during JSValue coercion ([#4043](https://github.com/ionic-team/capacitor/issues/4043)) ([1affae7](https://github.com/ionic-team/capacitor/commit/1affae7cf8d2f49681bf25be48633ab985bbd12f))
671
- * **iOS:** skip Swift type coercion on Cordova plugin calls ([#4048](https://github.com/ionic-team/capacitor/issues/4048)) ([7bb9e0f](https://github.com/ionic-team/capacitor/commit/7bb9e0f22fdea369a6522c2d63a5b56baab9f5ca))
672
-
673
-
674
-
675
- # [3.0.0-alpha.12](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.11...3.0.0-alpha.12) (2021-01-08)
676
-
677
- **Note:** Version bump only for package @capacitor/ios
678
-
679
-
680
-
681
-
682
-
683
- # [3.0.0-alpha.11](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.10...3.0.0-alpha.11) (2020-12-26)
684
-
685
-
686
- ### Features
687
-
688
- * **iOS:** Open CAPBridgeViewController for subclassing ([#3973](https://github.com/ionic-team/capacitor/issues/3973)) ([a601705](https://github.com/ionic-team/capacitor/commit/a601705f8116ac10d1a0b5942511952c07cf474e))
689
-
690
-
691
-
692
-
693
-
694
- # [3.0.0-alpha.9](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.8...3.0.0-alpha.9) (2020-12-15)
695
-
696
- **Note:** Version bump only for package @capacitor/ios
697
-
698
-
699
-
700
-
701
-
702
- # [3.0.0-alpha.8](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.7...3.0.0-alpha.8) (2020-12-15)
703
-
704
-
705
- ### Bug Fixes
706
-
707
- * **ios:** expose lastURL getter ([#3898](https://github.com/ionic-team/capacitor/issues/3898)) ([90b7fe3](https://github.com/ionic-team/capacitor/commit/90b7fe39f5a7cb9d584618a6fba66338f2bbf5fe))
708
-
709
-
710
-
711
- # [3.0.0-alpha.7](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.6...3.0.0-alpha.7) (2020-12-02)
712
-
713
-
714
- ### Bug Fixes
715
-
716
- * **ios:** share message handler between webview and bridge ([#3875](https://github.com/ionic-team/capacitor/issues/3875)) ([f7dff2e](https://github.com/ionic-team/capacitor/commit/f7dff2e661a54bee770940ee1ebd9eab6456ba2e))
717
-
718
-
719
- ### Features
720
-
721
- * **ios:** add local and remote notification router ([#3796](https://github.com/ionic-team/capacitor/issues/3796)) ([f3edaf9](https://github.com/ionic-team/capacitor/commit/f3edaf93d4328ea3ee90df573bf14ef0efc7553b))
722
- * **ios:** add path utilities to bridge ([#3842](https://github.com/ionic-team/capacitor/issues/3842)) ([c31eb35](https://github.com/ionic-team/capacitor/commit/c31eb35f83a33626a9d88731c0fff18966c71b0b))
723
- * **iOS:** Add base implementation of permissions calls ([#3856](https://github.com/ionic-team/capacitor/issues/3856)) ([d733236](https://github.com/ionic-team/capacitor/commit/d7332364212794a5005229defd05c129921d9c5d))
724
- * **iOS:** Refactoring configuration ([#3759](https://github.com/ionic-team/capacitor/issues/3759)) ([e2e64c2](https://github.com/ionic-team/capacitor/commit/e2e64c23b88d93a1c594df51dddd0c55d5f37770))
725
-
726
-
727
-
728
- # [3.0.0-alpha.6](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.5...3.0.0-alpha.6) (2020-10-30)
729
-
730
-
731
- ### Features
732
-
733
- * unified errors and error codes ([#3673](https://github.com/ionic-team/capacitor/issues/3673)) ([f9e0803](https://github.com/ionic-team/capacitor/commit/f9e08038aa88f7453e8235f380d2767a12a7a073))
734
-
735
-
736
-
737
-
738
-
739
- # [3.0.0-alpha.5](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.4...3.0.0-alpha.5) (2020-10-06)
740
-
741
- **Note:** Version bump only for package @capacitor/ios
742
-
743
-
744
-
745
- # [3.0.0-alpha.4](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.3...3.0.0-alpha.4) (2020-09-23)
746
-
747
- **Note:** Version bump only for package @capacitor/ios
748
-
749
-
750
-
751
- # [3.0.0-alpha.3](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.2...3.0.0-alpha.3) (2020-09-15)
752
-
753
-
754
- **Note:** Version bump only for package @capacitor/ios
755
-
756
-
757
-
758
- # [3.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.1...3.0.0-alpha.2) (2020-08-31)
759
-
760
-
761
- ### Features
762
-
763
- * Add extension for creating data from data url ([#3474](https://github.com/ionic-team/capacitor/issues/3474)) ([2909fd0](https://github.com/ionic-team/capacitor/commit/2909fd0ac0d9fdb2cdb7fd25e38742451aa05fb1))
764
-
765
-
766
-
767
- # [3.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/2.4.0...3.0.0-alpha.1) (2020-08-21)
768
-
769
-
770
- ### Bug Fixes
771
-
772
- * **ios:** config bug from swiftlint refactor ([ace879f](https://github.com/ionic-team/capacitor/commit/ace879f42b19aa064efa80142c3783f736745344))
773
-
774
-
775
-
776
- # [3.0.0-alpha.0](https://github.com/ionic-team/capacitor/compare/2.3.0...3.0.0-alpha.0) (2020-07-23)