@capacitor/android 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.
@@ -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) {
@@ -101,6 +101,7 @@ public class Bridge {
101
101
  private String appUrlConfig;
102
102
  private HostMask appAllowNavigationMask;
103
103
  private Set<String> allowedOriginRules = new HashSet<String>();
104
+ private ArrayList<String> authorities = new ArrayList<>();
104
105
  // A reference to the main WebView for the app
105
106
  private final WebView webView;
106
107
  public final MockCordovaInterfaceImpl cordovaInterface;
@@ -205,7 +206,6 @@ public class Bridge {
205
206
  // Grab any intent info that our app was launched with
206
207
  Intent intent = context.getIntent();
207
208
  this.intentUri = intent.getData();
208
-
209
209
  // Register our core plugins
210
210
  this.registerAllPlugins();
211
211
 
@@ -228,7 +228,9 @@ public class Bridge {
228
228
  allowedOriginRules.add(allowNavigation);
229
229
  }
230
230
  }
231
+ authorities.addAll(Arrays.asList(appAllowNavigationConfig));
231
232
  }
233
+ this.appAllowNavigationMask = HostMask.Parser.parse(appAllowNavigationConfig);
232
234
  }
233
235
 
234
236
  public App getApp() {
@@ -236,43 +238,6 @@ public class Bridge {
236
238
  }
237
239
 
238
240
  private void loadWebView() {
239
- appUrlConfig = this.getServerUrl();
240
- String[] appAllowNavigationConfig = this.config.getAllowNavigation();
241
-
242
- ArrayList<String> authorities = new ArrayList<>();
243
-
244
- if (appAllowNavigationConfig != null) {
245
- authorities.addAll(Arrays.asList(appAllowNavigationConfig));
246
- }
247
- this.appAllowNavigationMask = HostMask.Parser.parse(appAllowNavigationConfig);
248
- String authority = this.getHost();
249
- authorities.add(authority);
250
- String scheme = this.getScheme();
251
-
252
- localUrl = scheme + "://" + authority;
253
-
254
- if (appUrlConfig != null) {
255
- try {
256
- URL appUrlObject = new URL(appUrlConfig);
257
- authorities.add(appUrlObject.getAuthority());
258
- } catch (Exception ex) {
259
- Logger.error("Provided server url is invalid: " + ex.getMessage());
260
- return;
261
- }
262
- localUrl = appUrlConfig;
263
- appUrl = appUrlConfig;
264
- } else {
265
- appUrl = localUrl;
266
- // custom URL schemes requires path ending with /
267
- if (!scheme.equals(Bridge.CAPACITOR_HTTP_SCHEME) && !scheme.equals(CAPACITOR_HTTPS_SCHEME)) {
268
- appUrl += "/";
269
- }
270
- }
271
-
272
- String appUrlPath = this.config.getStartPath();
273
- if (appUrlPath != null && !appUrlPath.trim().isEmpty()) {
274
- appUrl += appUrlPath;
275
- }
276
241
  final boolean html5mode = this.config.isHTML5Mode();
277
242
 
278
243
  // Start the local web server
@@ -292,7 +257,6 @@ public class Bridge {
292
257
  setServerBasePath(path);
293
258
  }
294
259
  }
295
-
296
260
  if (!this.isMinimumWebViewInstalled()) {
297
261
  String errorUrl = this.getErrorUrl();
298
262
  if (errorUrl != null) {
@@ -573,6 +537,36 @@ public class Bridge {
573
537
  }
574
538
 
575
539
  WebView.setWebContentsDebuggingEnabled(this.config.isWebContentsDebuggingEnabled());
540
+
541
+ appUrlConfig = this.getServerUrl();
542
+ String authority = this.getHost();
543
+ authorities.add(authority);
544
+ String scheme = this.getScheme();
545
+
546
+ localUrl = scheme + "://" + authority;
547
+
548
+ if (appUrlConfig != null) {
549
+ try {
550
+ URL appUrlObject = new URL(appUrlConfig);
551
+ authorities.add(appUrlObject.getAuthority());
552
+ } catch (Exception ex) {
553
+ Logger.error("Provided server url is invalid: " + ex.getMessage());
554
+ return;
555
+ }
556
+ localUrl = appUrlConfig;
557
+ appUrl = appUrlConfig;
558
+ } else {
559
+ appUrl = localUrl;
560
+ // custom URL schemes requires path ending with /
561
+ if (!scheme.equals(Bridge.CAPACITOR_HTTP_SCHEME) && !scheme.equals(CAPACITOR_HTTPS_SCHEME)) {
562
+ appUrl += "/";
563
+ }
564
+ }
565
+
566
+ String appUrlPath = this.config.getStartPath();
567
+ if (appUrlPath != null && !appUrlPath.trim().isEmpty()) {
568
+ appUrl += appUrlPath;
569
+ }
576
570
  }
577
571
 
578
572
  /**
@@ -20,18 +20,15 @@ public class CapacitorCookies extends Plugin {
20
20
  @Override
21
21
  public void load() {
22
22
  this.bridge.getWebView().addJavascriptInterface(this, "CapacitorCookiesAndroidInterface");
23
+ this.cookieManager = new CapacitorCookieManager(null, java.net.CookiePolicy.ACCEPT_ALL, this.bridge);
24
+ CookieHandler.setDefault(this.cookieManager);
23
25
  super.load();
24
26
  }
25
27
 
26
28
  @JavascriptInterface
27
29
  public boolean isEnabled() {
28
30
  PluginConfig pluginConfig = getBridge().getConfig().getPluginConfiguration("CapacitorCookies");
29
- boolean isEnabled = pluginConfig.getBoolean("enabled", false);
30
- if (isEnabled) {
31
- this.cookieManager = new CapacitorCookieManager(null, java.net.CookiePolicy.ACCEPT_ALL, this.bridge);
32
- CookieHandler.setDefault(cookieManager);
33
- }
34
- return isEnabled;
31
+ return pluginConfig.getBoolean("enabled", false);
35
32
  }
36
33
 
37
34
  /**
@@ -19,6 +19,7 @@ import java.net.URL;
19
19
  import java.net.URLEncoder;
20
20
  import java.net.UnknownServiceException;
21
21
  import java.nio.charset.StandardCharsets;
22
+ import java.util.Base64;
22
23
  import java.util.Iterator;
23
24
  import java.util.List;
24
25
  import java.util.Locale;
@@ -26,6 +27,7 @@ import java.util.Map;
26
27
  import javax.net.ssl.HttpsURLConnection;
27
28
  import javax.net.ssl.SSLSocketFactory;
28
29
  import org.json.JSONException;
30
+ import org.json.JSONObject;
29
31
 
30
32
  public class CapacitorHttpUrlConnection implements ICapacitorHttpUrlConnection {
31
33
 
@@ -173,7 +175,7 @@ public class CapacitorHttpUrlConnection implements ICapacitorHttpUrlConnection {
173
175
  * @throws JSONException
174
176
  * @throws IOException
175
177
  */
176
- public void setRequestBody(PluginCall call, JSValue body) throws JSONException, IOException {
178
+ public void setRequestBody(PluginCall call, JSValue body, String bodyType) throws JSONException, IOException {
177
179
  String contentType = connection.getRequestProperty("Content-Type");
178
180
  String dataString = "";
179
181
 
@@ -192,6 +194,15 @@ public class CapacitorHttpUrlConnection implements ICapacitorHttpUrlConnection {
192
194
  dataString = call.getString("data");
193
195
  }
194
196
  this.writeRequestBody(dataString != null ? dataString : "");
197
+ } else if (bodyType.equals("file")) {
198
+ try (DataOutputStream os = new DataOutputStream(connection.getOutputStream())) {
199
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
200
+ os.write(Base64.getDecoder().decode(body.toString()));
201
+ }
202
+ os.flush();
203
+ }
204
+ } else if (bodyType.equals("formData")) {
205
+ this.writeFormDataRequestBody(contentType, body.toJSArray());
195
206
  } else {
196
207
  this.writeRequestBody(body.toString());
197
208
  }
@@ -209,6 +220,47 @@ public class CapacitorHttpUrlConnection implements ICapacitorHttpUrlConnection {
209
220
  }
210
221
  }
211
222
 
223
+ private void writeFormDataRequestBody(String contentType, JSArray entries) throws IOException, JSONException {
224
+ try (DataOutputStream os = new DataOutputStream(connection.getOutputStream())) {
225
+ String boundary = contentType.split(";")[1].split("=")[1];
226
+ String lineEnd = "\r\n";
227
+ String twoHyphens = "--";
228
+
229
+ for (Object e : entries.toList()) {
230
+ if (e instanceof JSONObject) {
231
+ JSONObject entry = (JSONObject) e;
232
+ String type = entry.getString("type");
233
+ String key = entry.getString("key");
234
+ String value = entry.getString("value");
235
+ if (type.equals("string")) {
236
+ os.writeBytes(twoHyphens + boundary + lineEnd);
237
+ os.writeBytes("Content-Disposition: form-data; name=\"" + key + "\"" + lineEnd + lineEnd);
238
+ os.writeBytes(value);
239
+ os.writeBytes(lineEnd);
240
+ } else if (type.equals("base64File")) {
241
+ String fileName = entry.getString("fileName");
242
+ String fileContentType = entry.getString("contentType");
243
+
244
+ os.writeBytes(twoHyphens + boundary + lineEnd);
245
+ os.writeBytes("Content-Disposition: form-data; name=\"" + key + "\"; filename=\"" + fileName + "\"" + lineEnd);
246
+ os.writeBytes("Content-Type: " + fileContentType + lineEnd);
247
+ os.writeBytes("Content-Transfer-Encoding: binary" + lineEnd);
248
+ os.writeBytes(lineEnd);
249
+
250
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
251
+ os.write(Base64.getDecoder().decode(value));
252
+ }
253
+
254
+ os.writeBytes(lineEnd);
255
+ }
256
+ }
257
+ }
258
+
259
+ os.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
260
+ os.flush();
261
+ }
262
+ }
263
+
212
264
  /**
213
265
  * Opens a communications link to the resource referenced by this
214
266
  * URL, if such a connection has not already been established.
@@ -368,13 +368,14 @@ public class HttpRequestHandler {
368
368
  public static JSObject request(PluginCall call, String httpMethod, Bridge bridge)
369
369
  throws IOException, URISyntaxException, JSONException {
370
370
  String urlString = call.getString("url", "");
371
- JSObject headers = call.getObject("headers");
372
- JSObject params = call.getObject("params");
371
+ JSObject headers = call.getObject("headers", new JSObject());
372
+ JSObject params = call.getObject("params", new JSObject());
373
373
  Integer connectTimeout = call.getInt("connectTimeout");
374
374
  Integer readTimeout = call.getInt("readTimeout");
375
375
  Boolean disableRedirects = call.getBoolean("disableRedirects");
376
376
  Boolean shouldEncode = call.getBoolean("shouldEncodeUrlParams", true);
377
377
  ResponseType responseType = ResponseType.parse(call.getString("responseType"));
378
+ String dataType = call.getString("dataType");
378
379
 
379
380
  String method = httpMethod != null ? httpMethod.toUpperCase(Locale.ROOT) : call.getString("method", "GET").toUpperCase(Locale.ROOT);
380
381
 
@@ -402,7 +403,7 @@ public class HttpRequestHandler {
402
403
  JSValue data = new JSValue(call, "data");
403
404
  if (data.getValue() != null) {
404
405
  connection.setDoOutput(true);
405
- connection.setRequestBody(call, data);
406
+ connection.setRequestBody(call, data, dataType);
406
407
  }
407
408
  }
408
409
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capacitor/android",
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)",
@@ -23,10 +23,9 @@
23
23
  "verify": "./gradlew clean lint build test -b capacitor/build.gradle"
24
24
  },
25
25
  "peerDependencies": {
26
- "@capacitor/core": "^4.7.0"
26
+ "@capacitor/core": "^4.8.0"
27
27
  },
28
28
  "publishConfig": {
29
29
  "access": "public"
30
- },
31
- "gitHead": "b43c69d9d6530fa1a0cc461d6db14859865ed995"
30
+ }
32
31
  }
package/CHANGELOG.md DELETED
@@ -1,802 +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
- * **android:** launching intents without host ([#6493](https://github.com/ionic-team/capacitor/issues/6493)) ([6028ff4](https://github.com/ionic-team/capacitor/commit/6028ff482b489c150e348a3b536387c321b39b80))
12
- * **cookies:** check isEnabled before setting cookieHandler ([24a28cb](https://github.com/ionic-team/capacitor/commit/24a28cb0a391dcd7f305000c4973b4c2c9a79359))
13
- * **cookies:** init cookie manager after server url is set ([4000b02](https://github.com/ionic-team/capacitor/commit/4000b0259223fcd505bbd5393e2458f0abd3b156))
14
- * **http:** copy native response url to fetch response ([42d2eb3](https://github.com/ionic-team/capacitor/commit/42d2eb3c3c04e087b88df7252cd2c323b00a3f95))
15
-
16
-
17
-
18
-
19
-
20
- ## [4.7.3](https://github.com/ionic-team/capacitor/compare/4.7.2...4.7.3) (2023-03-31)
21
-
22
-
23
- ### Bug Fixes
24
-
25
- * **android:** remove stored references to bridge that holds it in memory ([#6448](https://github.com/ionic-team/capacitor/issues/6448)) ([#6455](https://github.com/ionic-team/capacitor/issues/6455)) ([8fa2d1c](https://github.com/ionic-team/capacitor/commit/8fa2d1c560321d9eb91edb1c81bf64f802289604))
26
-
27
-
28
-
29
-
30
-
31
- ## [4.7.2](https://github.com/ionic-team/capacitor/compare/4.7.1...4.7.2) (2023-03-31)
32
-
33
-
34
- ### Bug Fixes
35
-
36
- * **android:** proper app url check for launching intents ([#6451](https://github.com/ionic-team/capacitor/issues/6451)) ([6f8d1ad](https://github.com/ionic-team/capacitor/commit/6f8d1adb6514fe3cd64674215d87ae55d5f12f35))
37
-
38
-
39
-
40
-
41
-
42
- ## [4.7.1](https://github.com/ionic-team/capacitor/compare/4.7.0...4.7.1) (2023-03-16)
43
-
44
- **Note:** Version bump only for package @capacitor/android
45
-
46
-
47
-
48
-
49
-
50
- # [4.7.0](https://github.com/ionic-team/capacitor/compare/4.6.3...4.7.0) (2023-02-22)
51
-
52
-
53
- ### Bug Fixes
54
-
55
- * 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))
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
- ### Features
60
-
61
- * **android:** add ability to create config from a custom file path ([#6264](https://github.com/ionic-team/capacitor/issues/6264)) ([42b4f0f](https://github.com/ionic-team/capacitor/commit/42b4f0f416c8038ae368860007910bb09c8ec84e))
62
- * **android:** Add SSL Pinning logic ([#6314](https://github.com/ionic-team/capacitor/issues/6314)) ([07f113e](https://github.com/ionic-team/capacitor/commit/07f113e6933e15c45d772f69f7128cbb3706f7b9))
63
- * **android:** enable loading of assets outside of the content web asset directory ([#6301](https://github.com/ionic-team/capacitor/issues/6301)) ([364497d](https://github.com/ionic-team/capacitor/commit/364497d4aca93fc716a0673ef9103479aed791ec))
64
-
65
-
66
-
67
-
68
-
69
- ## [4.6.3](https://github.com/ionic-team/capacitor/compare/4.6.2...4.6.3) (2023-02-03)
70
-
71
-
72
- ### Bug Fixes
73
-
74
- * **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))
75
-
76
-
77
-
78
-
79
-
80
- ## [4.6.2](https://github.com/ionic-team/capacitor/compare/4.6.1...4.6.2) (2023-01-17)
81
-
82
-
83
- ### Bug Fixes
84
-
85
- * **android:** get application/x-www-form-urlencoded as string ([#6165](https://github.com/ionic-team/capacitor/issues/6165)) ([0735e89](https://github.com/ionic-team/capacitor/commit/0735e89d48e77a1ddca97a48e3851f4a0a3ea2c1))
86
- * **ios/android:** better http error handling ([#6208](https://github.com/ionic-team/capacitor/issues/6208)) ([7d4d70a](https://github.com/ionic-team/capacitor/commit/7d4d70a0500b7996c710c0762907f44bdf27c92b))
87
-
88
-
89
-
90
-
91
-
92
- ## [4.6.1](https://github.com/ionic-team/capacitor/compare/4.6.0...4.6.1) (2022-12-05)
93
-
94
- **Note:** Version bump only for package @capacitor/android
95
-
96
-
97
-
98
-
99
-
100
- # [4.6.0](https://github.com/ionic-team/capacitor/compare/4.5.0...4.6.0) (2022-12-01)
101
-
102
-
103
- ### Bug Fixes
104
-
105
- * **android:** Don't run Cordova plugins on ui thread ([#6108](https://github.com/ionic-team/capacitor/issues/6108)) ([592ee86](https://github.com/ionic-team/capacitor/commit/592ee862a58f5cb0737620a0246fe8ae295d27cf))
106
- * **cookies:** Use Set-Cookie headers to persist cookies ([57f8b39](https://github.com/ionic-team/capacitor/commit/57f8b39d7f4c5ee0e5e5cb316913e9450a81d22b))
107
-
108
-
109
- ### Features
110
-
111
- * **android:** Plugin Instance Support ([#6073](https://github.com/ionic-team/capacitor/issues/6073)) ([3d5b7c2](https://github.com/ionic-team/capacitor/commit/3d5b7c2d372cf764c625f46d1e8761e05b8959da))
112
-
113
-
114
-
115
-
116
-
117
- # [4.5.0](https://github.com/ionic-team/capacitor/compare/4.4.0...4.5.0) (2022-11-16)
118
-
119
-
120
- ### Bug Fixes
121
-
122
- * **android:** Silence deprecation warning on handlePermissionResult ([#6092](https://github.com/ionic-team/capacitor/issues/6092)) ([888b13e](https://github.com/ionic-team/capacitor/commit/888b13e89c48dab949b38135a3ec443ac4fd852e))
123
-
124
-
125
- ### Features
126
-
127
- * **android/cli:** Allow to use the old addJavascriptInterface bridge ([#6043](https://github.com/ionic-team/capacitor/issues/6043)) ([a6e7c54](https://github.com/ionic-team/capacitor/commit/a6e7c5422687b703492a5fcc49369eacc376143d))
128
- * **cookies:** add get cookies plugin method ([ba1e770](https://github.com/ionic-team/capacitor/commit/ba1e7702a3338714aee24388c0afea39706c9341))
129
-
130
-
131
-
132
-
133
-
134
- # [4.4.0](https://github.com/ionic-team/capacitor/compare/4.3.0...4.4.0) (2022-10-21)
135
-
136
-
137
- ### Bug Fixes
138
-
139
- * **android:** added ServerPath object and building options for setting initial load from portals ([#6008](https://github.com/ionic-team/capacitor/issues/6008)) ([205b6e6](https://github.com/ionic-team/capacitor/commit/205b6e61806158244846608b1e6c0c7b26ee4ab7))
140
- * **cookies:** make document.cookie setter synchronous ([2272abf](https://github.com/ionic-team/capacitor/commit/2272abf3d3d9dc82d9ca0d03b17e2b78f11f61fc))
141
- * **http:** fix exception thrown on 204 responses ([1f6e8be](https://github.com/ionic-team/capacitor/commit/1f6e8be9d8813c4397e2c54ac4c06beb55f97b5f))
142
- * **http:** fix local http requests on native platforms ([c4e040a](https://github.com/ionic-team/capacitor/commit/c4e040a6f8c6b54bac6ae320e5f0f008604fe50f))
143
-
144
-
145
-
146
-
147
-
148
- # [4.3.0](https://github.com/ionic-team/capacitor/compare/4.2.0...4.3.0) (2022-09-21)
149
-
150
-
151
- ### Bug Fixes
152
-
153
- * **android:** open external links in browser ([#5913](https://github.com/ionic-team/capacitor/issues/5913)) ([7553ede](https://github.com/ionic-team/capacitor/commit/7553ede93170971e21ab3dec1798443d084ead2a))
154
- * **android:** set all cookies on proxied requests ([#5781](https://github.com/ionic-team/capacitor/issues/5781)) ([5ef6a38](https://github.com/ionic-team/capacitor/commit/5ef6a3889121dd39a9159ff80250df18854bc557))
155
- * **android:** set WebViewClient on the WebView ([#5919](https://github.com/ionic-team/capacitor/issues/5919)) ([020ed8e](https://github.com/ionic-team/capacitor/commit/020ed8eaeb7864399d4b93f54ab7601c607d8e0d))
156
- * **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))
157
-
158
-
159
- ### Features
160
-
161
- * Capacitor Cookies & Capacitor Http core plugins ([d4047cf](https://github.com/ionic-team/capacitor/commit/d4047cfa947676777f400389a8d65defae140b45))
162
-
163
-
164
-
165
-
166
-
167
- # [4.2.0](https://github.com/ionic-team/capacitor/compare/4.1.0...4.2.0) (2022-09-08)
168
-
169
- **Note:** Version bump only for package @capacitor/android
170
-
171
-
172
-
173
-
174
-
175
- ## [4.1.0](https://github.com/ionic-team/capacitor/compare/4.0.1...4.1.0) (2022-08-18)
176
-
177
- **Note:** Version bump only for package @capacitor/android
178
-
179
-
180
-
181
-
182
-
183
- ## [4.0.1](https://github.com/ionic-team/capacitor/compare/4.0.0...4.0.1) (2022-07-28)
184
-
185
- **Note:** Version bump only for package @capacitor/android
186
-
187
-
188
-
189
-
190
-
191
- # [4.0.0](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.2...4.0.0) (2022-07-27)
192
-
193
-
194
- ### Bug Fixes
195
-
196
- * **android:** Publish proguard-rules.pro on npm ([#5761](https://github.com/ionic-team/capacitor/issues/5761)) ([df77103](https://github.com/ionic-team/capacitor/commit/df77103ca411fa452239099769289eeeea2404d2))
197
-
198
-
199
- ### Features
200
-
201
- * **android:** Add android.minWebviewVersion configuration option ([#5768](https://github.com/ionic-team/capacitor/issues/5768)) ([ad83827](https://github.com/ionic-team/capacitor/commit/ad838279e9cd190ce6f1a020a0ac9e3916786324))
202
- * **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))
203
- * **android:** Use addWebMessageListener where available ([#5427](https://github.com/ionic-team/capacitor/issues/5427)) ([c2dfe80](https://github.com/ionic-team/capacitor/commit/c2dfe808446717412b35e82713d123b7a052f264))
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
- **Note:** Version bump only for package @capacitor/android
213
-
214
-
215
-
216
-
217
-
218
- # [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)
219
-
220
- **Note:** Version bump only for package @capacitor/android
221
-
222
-
223
-
224
-
225
-
226
- # [4.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/3.6.0...4.0.0-beta.0) (2022-06-17)
227
-
228
-
229
- ### Bug Fixes
230
-
231
- * **android:** make removeAllListeners return a promise ([#5527](https://github.com/ionic-team/capacitor/issues/5527)) ([6f4d858](https://github.com/ionic-team/capacitor/commit/6f4d858ea879d97109c0c7da2d664d04806adc2a))
232
- * **android:** prevent app from loading if server.url is invalid ([d4a0dea](https://github.com/ionic-team/capacitor/commit/d4a0deaa37eda4476f0be030e266c2c1260fc6e8))
233
-
234
-
235
- ### Features
236
-
237
- * **android:** don't allow server.androidScheme to be set to schemes handled by WebView ([01285ba](https://github.com/ionic-team/capacitor/commit/01285ba253d602b08a41240ad2ccf370730d51a3))
238
- * **android:** set default targetSDK to 31 ([#5442](https://github.com/ionic-team/capacitor/issues/5442)) ([4442459](https://github.com/ionic-team/capacitor/commit/4442459b24cdbac25cb1e4de11583d22c21452b3))
239
- * **android:** set default targetSDK to 32 ([#5611](https://github.com/ionic-team/capacitor/issues/5611)) ([416b966](https://github.com/ionic-team/capacitor/commit/416b9662fbf6233d23216c0c0441862603c3a723))
240
- * **android:** Upgrade gradle to 7.4 ([#5445](https://github.com/ionic-team/capacitor/issues/5445)) ([28eaf18](https://github.com/ionic-team/capacitor/commit/28eaf1851fa7a912917dbb40c68fb4dd583d08ad))
241
- * **android:** Use java 11 ([#5552](https://github.com/ionic-team/capacitor/issues/5552)) ([e47959f](https://github.com/ionic-team/capacitor/commit/e47959fcbd6a89b97b1275a5814fdb4e7ce30672))
242
-
243
-
244
-
245
-
246
-
247
- # [3.6.0](https://github.com/ionic-team/capacitor/compare/3.5.1...3.6.0) (2022-06-17)
248
-
249
-
250
- ### Features
251
-
252
- * **android:** update support for Portals for Capacitor to include Live Updates ([#5660](https://github.com/ionic-team/capacitor/issues/5660)) ([62f0a5e](https://github.com/ionic-team/capacitor/commit/62f0a5eaa40776aad79dbf8f8c0900037d3cc97e))
253
- * **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))
254
-
255
-
256
-
257
- # [4.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/3.4.1...4.0.0-alpha.2) (2022-05-12)
258
-
259
-
260
- ### Bug Fixes
261
-
262
- * **android:** make removeAllListeners return a promise ([#5527](https://github.com/ionic-team/capacitor/issues/5527)) ([6f4d858](https://github.com/ionic-team/capacitor/commit/6f4d858ea879d97109c0c7da2d664d04806adc2a))
263
- * **android:** prevent app from loading if server.url is invalid ([d4a0dea](https://github.com/ionic-team/capacitor/commit/d4a0deaa37eda4476f0be030e266c2c1260fc6e8))
264
-
265
-
266
- ### Features
267
-
268
- * **android:** don't allow server.androidScheme to be set to schemes handled by WebView ([01285ba](https://github.com/ionic-team/capacitor/commit/01285ba253d602b08a41240ad2ccf370730d51a3))
269
- * **android:** set default targetSDK to 31 ([#5442](https://github.com/ionic-team/capacitor/issues/5442)) ([4442459](https://github.com/ionic-team/capacitor/commit/4442459b24cdbac25cb1e4de11583d22c21452b3))
270
- * **android:** Upgrade gradle to 7.4 ([#5445](https://github.com/ionic-team/capacitor/issues/5445)) ([28eaf18](https://github.com/ionic-team/capacitor/commit/28eaf1851fa7a912917dbb40c68fb4dd583d08ad))
271
- * **android:** Use java 11 ([#5552](https://github.com/ionic-team/capacitor/issues/5552)) ([e47959f](https://github.com/ionic-team/capacitor/commit/e47959fcbd6a89b97b1275a5814fdb4e7ce30672))
272
-
273
-
274
-
275
-
276
- ## [3.5.1](https://github.com/ionic-team/capacitor/compare/3.5.0...3.5.1) (2022-05-04)
277
-
278
-
279
- ### Bug Fixes
280
-
281
- * **android:** move initialFocus on webview into config ([#5579](https://github.com/ionic-team/capacitor/issues/5579)) ([8b4e861](https://github.com/ionic-team/capacitor/commit/8b4e861514b0fbe08e9296f49c280234f54742e1))
282
-
283
-
284
-
285
-
286
-
287
- # [3.5.0](https://github.com/ionic-team/capacitor/compare/3.4.3...3.5.0) (2022-04-22)
288
-
289
-
290
- ### Features
291
-
292
- * **android:** Add overridable routing for WebViewLocalServer ([#5553](https://github.com/ionic-team/capacitor/issues/5553)) ([3bb288e](https://github.com/ionic-team/capacitor/commit/3bb288e848c5c0e49c1e58c0782e0b1ffd7b1f31))
293
-
294
-
295
-
296
- # [4.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/3.4.1...4.0.0-alpha.1) (2022-03-25)
297
-
298
-
299
- ### Features
300
-
301
- * **android:** set default targetSDK to 31 ([#5442](https://github.com/ionic-team/capacitor/issues/5442)) ([4442459](https://github.com/ionic-team/capacitor/commit/4442459b24cdbac25cb1e4de11583d22c21452b3))
302
- * **android:** Upgrade gradle to 7.4 ([#5445](https://github.com/ionic-team/capacitor/issues/5445)) ([28eaf18](https://github.com/ionic-team/capacitor/commit/28eaf1851fa7a912917dbb40c68fb4dd583d08ad))
303
-
304
-
305
-
306
- ## [3.4.3](https://github.com/ionic-team/capacitor/compare/3.4.2...3.4.3) (2022-03-04)
307
-
308
- **Note:** Version bump only for package @capacitor/android
309
-
310
-
311
-
312
-
313
-
314
- ## [3.4.2](https://github.com/ionic-team/capacitor/compare/3.4.1...3.4.2) (2022-03-03)
315
-
316
- **Note:** Version bump only for package @capacitor/android
317
-
318
-
319
-
320
- ## [3.4.1](https://github.com/ionic-team/capacitor/compare/3.4.0...3.4.1) (2022-02-09)
321
-
322
- **Note:** Version bump only for package @capacitor/android
323
-
324
-
325
-
326
-
327
-
328
- # [3.4.0](https://github.com/ionic-team/capacitor/compare/3.3.4...3.4.0) (2022-01-19)
329
-
330
-
331
- ### Bug Fixes
332
-
333
- * **android:** prevent input file crash if accept has . ([#5363](https://github.com/ionic-team/capacitor/issues/5363)) ([bdacb30](https://github.com/ionic-team/capacitor/commit/bdacb300bb6391dc4b84bb2bab075df993a15cba))
334
-
335
-
336
- ### Features
337
-
338
- * **android:** Add getLong helper on PluginCall ([#5235](https://github.com/ionic-team/capacitor/issues/5235)) ([26261fb](https://github.com/ionic-team/capacitor/commit/26261fb49211330c4db72c259359565da7d7bc4b))
339
-
340
-
341
-
342
-
343
-
344
- ## [3.3.4](https://github.com/ionic-team/capacitor/compare/3.3.3...3.3.4) (2022-01-05)
345
-
346
-
347
- ### Bug Fixes
348
-
349
- * **android:** Prevent crash if activity killed on input file ([#5328](https://github.com/ionic-team/capacitor/issues/5328)) ([a206841](https://github.com/ionic-team/capacitor/commit/a20684180a9b6fd50547ae578f21531faa116da5))
350
-
351
-
352
-
353
-
354
-
355
- ## [3.3.3](https://github.com/ionic-team/capacitor/compare/3.3.2...3.3.3) (2021-12-08)
356
-
357
-
358
- ### Bug Fixes
359
-
360
- * **android:** Prevent crash in restoreInstanceState if bundleData is null ([#5289](https://github.com/ionic-team/capacitor/issues/5289)) ([622d62f](https://github.com/ionic-team/capacitor/commit/622d62fc0d7cd79558bf6f11331bd7d6690aa4f9))
361
-
362
-
363
-
364
-
365
-
366
- ## [3.3.2](https://github.com/ionic-team/capacitor/compare/3.3.1...3.3.2) (2021-11-17)
367
-
368
-
369
- ### Bug Fixes
370
-
371
- * **android:** Allow web geolocation if only COARSE_LOCATION is granted ([#5236](https://github.com/ionic-team/capacitor/issues/5236)) ([bc7b24e](https://github.com/ionic-team/capacitor/commit/bc7b24e9b58b194b32b750c5816c8d8ef180834a))
372
-
373
-
374
-
375
-
376
-
377
- ## [3.3.1](https://github.com/ionic-team/capacitor/compare/3.3.0...3.3.1) (2021-11-05)
378
-
379
- **Note:** Version bump only for package @capacitor/android
380
-
381
-
382
-
383
-
384
-
385
- # [3.3.0](https://github.com/ionic-team/capacitor/compare/3.2.5...3.3.0) (2021-11-03)
386
-
387
-
388
- ### Bug Fixes
389
-
390
- * **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))
391
-
392
-
393
- ### Features
394
-
395
- * **android:** ability to reload the webview ([#5184](https://github.com/ionic-team/capacitor/issues/5184)) ([c495bed](https://github.com/ionic-team/capacitor/commit/c495bed216ddf05450f185d2d3f09b4052b281a8))
396
-
397
-
398
-
399
-
400
-
401
- ## [3.2.5](https://github.com/ionic-team/capacitor/compare/3.2.4...3.2.5) (2021-10-13)
402
-
403
-
404
- ### Bug Fixes
405
-
406
- * **android:** Avoid ConcurrentModificationException on notifyListeners ([#5125](https://github.com/ionic-team/capacitor/issues/5125)) ([b82bfe0](https://github.com/ionic-team/capacitor/commit/b82bfe0db2e38fa286eb18391b1d5e2f86a1b35c))
407
- * **android:** Support cordova-android 10 ([#5103](https://github.com/ionic-team/capacitor/issues/5103)) ([e238233](https://github.com/ionic-team/capacitor/commit/e238233dcf34a183af4861176789d1feb1eb51fa))
408
-
409
-
410
-
411
-
412
-
413
- ## [3.2.4](https://github.com/ionic-team/capacitor/compare/3.2.3...3.2.4) (2021-09-27)
414
-
415
-
416
- ### Bug Fixes
417
-
418
- * **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))
419
-
420
-
421
-
422
-
423
-
424
- ## [3.2.3](https://github.com/ionic-team/capacitor/compare/3.2.2...3.2.3) (2021-09-15)
425
-
426
-
427
- ### Bug Fixes
428
-
429
- * **android:** proguard rules ([#5048](https://github.com/ionic-team/capacitor/issues/5048)) ([cf15c0f](https://github.com/ionic-team/capacitor/commit/cf15c0fb3bd67315011865fedb4157d5076965fd))
430
- * **android:** save activity result launcher calls ([#5004](https://github.com/ionic-team/capacitor/issues/5004)) ([2c1eb60](https://github.com/ionic-team/capacitor/commit/2c1eb603c79b94f6fcc74f0cbef523590b656a1e))
431
-
432
-
433
-
434
-
435
-
436
- ## [3.2.2](https://github.com/ionic-team/capacitor/compare/3.2.1...3.2.2) (2021-09-02)
437
-
438
- **Note:** Version bump only for package @capacitor/android
439
-
440
-
441
-
442
-
443
-
444
- ## [3.2.1](https://github.com/ionic-team/capacitor/compare/3.2.0...3.2.1) (2021-09-01)
445
-
446
- **Note:** Version bump only for package @capacitor/android
447
-
448
-
449
-
450
-
451
-
452
- # [3.2.0](https://github.com/ionic-team/capacitor/compare/3.1.2...3.2.0) (2021-08-18)
453
-
454
-
455
- ### Bug Fixes
456
-
457
- * **android:** Don't inject map files into capacitor script ([#4893](https://github.com/ionic-team/capacitor/issues/4893)) ([992bebc](https://github.com/ionic-team/capacitor/commit/992bebce5a54128ec09b4905c4424fbe392719be))
458
-
459
-
460
-
461
-
462
-
463
- ## [3.1.2](https://github.com/ionic-team/capacitor/compare/3.1.1...3.1.2) (2021-07-21)
464
-
465
-
466
- ### Bug Fixes
467
-
468
- * **android:** add missing android webview lifecycle events ([6a7c4e3](https://github.com/ionic-team/capacitor/commit/6a7c4e3b3a250270ac5c4b0f09da2a613ef2cf17))
469
- * **android:** Set theme an content view on onCreate ([#4841](https://github.com/ionic-team/capacitor/issues/4841)) ([8950c60](https://github.com/ionic-team/capacitor/commit/8950c600bb6e3804b79c62e83fef2253c2cc2389))
470
-
471
-
472
-
473
-
474
-
475
- ## [3.1.1](https://github.com/ionic-team/capacitor/compare/3.1.0...3.1.1) (2021-07-07)
476
-
477
-
478
- ### Bug Fixes
479
-
480
- * fixing peer deps issues in android and ios libs ([310d9f4](https://github.com/ionic-team/capacitor/commit/310d9f486db976cb258fcda5ac893f019667617f))
481
-
482
-
483
-
484
-
485
-
486
- # [3.1.0](https://github.com/ionic-team/capacitor/compare/3.0.2...3.1.0) (2021-07-07)
487
-
488
- **Note:** Version bump only for package @capacitor/android
489
-
490
-
491
-
492
-
493
-
494
- ## [3.0.2](https://github.com/ionic-team/capacitor/compare/3.0.1...3.0.2) (2021-06-23)
495
-
496
-
497
- ### Bug Fixes
498
-
499
- * **android:** Set WEBVIEW_SERVER_URL before injecting native-bridge ([#4748](https://github.com/ionic-team/capacitor/issues/4748)) ([5d6b179](https://github.com/ionic-team/capacitor/commit/5d6b17994abc7ad770b95e3a9fc29aecf5d9fc05))
500
- * **core:** cordova events not firing ([#4712](https://github.com/ionic-team/capacitor/issues/4712)) ([ca4e3b6](https://github.com/ionic-team/capacitor/commit/ca4e3b62dba6a40e593a1404ba2fe2b416a4ac14))
501
-
502
-
503
-
504
-
505
-
506
- ## [3.0.1](https://github.com/ionic-team/capacitor/compare/3.0.0...3.0.1) (2021-06-09)
507
-
508
-
509
- ### Bug Fixes
510
-
511
- * **android:** Avoid crash on input file ([#4707](https://github.com/ionic-team/capacitor/issues/4707)) ([883c0fe](https://github.com/ionic-team/capacitor/commit/883c0fe4a8a33d2e14894d9b307f4d7ce6d13bad))
512
- * **android:** Make proxy handle user info in server url ([#4699](https://github.com/ionic-team/capacitor/issues/4699)) ([baeed45](https://github.com/ionic-team/capacitor/commit/baeed45038134d446aef7747e5ad5ce4ac07c438))
513
- * **android:** Reset bridge on onPageStarted only ([#4634](https://github.com/ionic-team/capacitor/issues/4634)) ([96e4830](https://github.com/ionic-team/capacitor/commit/96e483046c9128dbcaec21efb0f5d619c6b1185f))
514
- * Make isPluginAvailable available on bridge ([#4589](https://github.com/ionic-team/capacitor/issues/4589)) ([151e7a8](https://github.com/ionic-team/capacitor/commit/151e7a899d9646dbd5625a2539fd3f2297349bc5))
515
-
516
-
517
-
518
-
519
-
520
- # [3.0.0](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.4...3.0.0) (2021-05-18)
521
-
522
- **Note:** Version bump only for package @capacitor/android
523
-
524
-
525
-
526
-
527
-
528
- # [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)
529
-
530
- **Note:** Version bump only for package @capacitor/android
531
-
532
-
533
-
534
-
535
-
536
- # [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)
537
-
538
- **Note:** Version bump only for package @capacitor/android
539
-
540
-
541
-
542
-
543
-
544
- # [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)
545
-
546
- **Note:** Version bump only for package @capacitor/android
547
-
548
-
549
-
550
-
551
-
552
- # [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)
553
-
554
-
555
- ### Bug Fixes
556
-
557
- * generate Capacitor.Plugins object ([#4496](https://github.com/ionic-team/capacitor/issues/4496)) ([1c71b7a](https://github.com/ionic-team/capacitor/commit/1c71b7adb2c325e34d980dbf578dc22afb2c332b))
558
- * **android:** Release the call after reject/resolve ([#4318](https://github.com/ionic-team/capacitor/issues/4318)) ([a9f30a8](https://github.com/ionic-team/capacitor/commit/a9f30a88bf3cf239a59c4e901e2a9a2a141a9044))
559
- * **android:** resolve issue with activity result API registration for fragments ([#4402](https://github.com/ionic-team/capacitor/issues/4402)) ([ac6c6bc](https://github.com/ionic-team/capacitor/commit/ac6c6bc031e0c8236004dfb9e1b04f1f849c1519))
560
-
561
-
562
- ### Features
563
-
564
- * Unify logging behavior across environments ([#4416](https://github.com/ionic-team/capacitor/issues/4416)) ([bae0f3d](https://github.com/ionic-team/capacitor/commit/bae0f3d2cee84978636d0f589bc7e2f745671baf))
565
- * **android:** ability to add listeners to the Capacitor WebView ([#4405](https://github.com/ionic-team/capacitor/issues/4405)) ([7bdcc15](https://github.com/ionic-team/capacitor/commit/7bdcc15a20248fc17b5867b215bba0c43e29b2c0))
566
-
567
-
568
-
569
-
570
-
571
- # [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)
572
-
573
-
574
- ### Bug Fixes
575
-
576
- * **android:** calls re-saved during permission/activity result callbacks were being released ([502a2d1](https://github.com/ionic-team/capacitor/commit/502a2d18ddce870f4caf810b405f7363f2340067))
577
- * **android:** live reload not working when using adb reverse ([362f221](https://github.com/ionic-team/capacitor/commit/362f2219767a5f28e3ce1f6857a0e20024adc6b6))
578
-
579
-
580
- ### Features
581
-
582
- * **android:** add configurable app path for embedded capacitor ([#4264](https://github.com/ionic-team/capacitor/issues/4264)) ([e433691](https://github.com/ionic-team/capacitor/commit/e43369144f7f378edc4f5d4f8dbbafe6cff6a70d))
583
- * **android:** Unifying saving plugin calls ([#4254](https://github.com/ionic-team/capacitor/issues/4254)) ([a648c51](https://github.com/ionic-team/capacitor/commit/a648c51588627404b5ad30c35943fed18af4a546))
584
-
585
-
586
-
587
-
588
-
589
- # [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)
590
-
591
- **Note:** Version bump only for package @capacitor/android
592
-
593
-
594
-
595
-
596
-
597
- # [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)
598
-
599
- **Note:** Version bump only for package @capacitor/android
600
-
601
-
602
-
603
-
604
-
605
- # [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)
606
-
607
- **Note:** Version bump only for package @capacitor/android
608
-
609
-
610
-
611
-
612
-
613
- # [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)
614
-
615
- **Note:** Version bump only for package @capacitor/android
616
-
617
-
618
-
619
-
620
-
621
- # [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)
622
-
623
-
624
- ### Bug Fixes
625
-
626
- * 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))
627
- * **android:** get PermissionState enum by state value ([#4100](https://github.com/ionic-team/capacitor/issues/4100)) ([194ae86](https://github.com/ionic-team/capacitor/commit/194ae8699944bf016132fb64fe48010679a6d64e))
628
- * **android:** requestPermission call rejects if permission missing in manifest ([55ef5ff](https://github.com/ionic-team/capacitor/commit/55ef5ff38e87729412c44bfa4b2f29e53044cecc))
629
-
630
-
631
- ### Features
632
-
633
- * **android:** activity result use new API and update permission result callbacks to match ([#4127](https://github.com/ionic-team/capacitor/issues/4127)) ([002f1e5](https://github.com/ionic-team/capacitor/commit/002f1e55173a50b9fe918b4eda73b5113b713282))
634
- * **android:** androidxActivityVersion & androidxFragmentVersion gradle variables ([#4103](https://github.com/ionic-team/capacitor/issues/4103)) ([4f77b96](https://github.com/ionic-team/capacitor/commit/4f77b962be85fc6bfc555a106c5b3e6707526626))
635
-
636
-
637
-
638
-
639
-
640
- # [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)
641
-
642
- **Note:** Version bump only for package @capacitor/android
643
-
644
-
645
-
646
-
647
-
648
- # [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)
649
-
650
- **Note:** Version bump only for package @capacitor/android
651
-
652
-
653
-
654
-
655
-
656
- # [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)
657
-
658
-
659
- ### Bug Fixes
660
-
661
- * **android:** append missing new lines on injected cordova files ([#4058](https://github.com/ionic-team/capacitor/issues/4058)) ([dbdc78d](https://github.com/ionic-team/capacitor/commit/dbdc78dc08e016dfbc2454d4f53a49f16f744b3e))
662
-
663
-
664
- ### Features
665
-
666
- * **android:** method to check permission for an alias ([#4062](https://github.com/ionic-team/capacitor/issues/4062)) ([c88c4b4](https://github.com/ionic-team/capacitor/commit/c88c4b46b949a87c1b89476b75273adef725242b))
667
-
668
-
669
-
670
-
671
-
672
- # [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)
673
-
674
-
675
- ### Features
676
-
677
- * **android:** switch to new callback-style permission requests ([#4033](https://github.com/ionic-team/capacitor/issues/4033)) ([cc459de](https://github.com/ionic-team/capacitor/commit/cc459de7fc070c0227e066f3e8b92062728ab45d))
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
- * **android:** expose CapConfig.loadDefault(), deprecate v2 constructor ([#3964](https://github.com/ionic-team/capacitor/issues/3964)) ([94ae977](https://github.com/ionic-team/capacitor/commit/94ae9774d2467fa7ba0336e7183f6d28cae45908))
689
-
690
-
691
-
692
-
693
-
694
- # [3.0.0-alpha.10](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.9...3.0.0-alpha.10) (2020-12-15)
695
-
696
-
697
- ### Bug Fixes
698
-
699
- * **android:** include lint.xml for downstream lint tasks ([efa72f3](https://github.com/ionic-team/capacitor/commit/efa72f38c5f64d3b91cc4c4c7d4d87ab38219893))
700
-
701
-
702
-
703
-
704
-
705
- # [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)
706
-
707
-
708
- ### Bug Fixes
709
-
710
- * **android:** include lint-baseline.xml for downstream lint tasks ([20ccaa0](https://github.com/ionic-team/capacitor/commit/20ccaa0311dcf8468019325ad976156d92ed0202))
711
-
712
-
713
-
714
-
715
-
716
- # [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)
717
-
718
-
719
- ### Bug Fixes
720
-
721
- * **Android:** Use plugin's getPermissionStates() to support overriding ([#3939](https://github.com/ionic-team/capacitor/issues/3939)) ([855a607](https://github.com/ionic-team/capacitor/commit/855a60711bcf6cff3215a36fac7e5314a2c4d159))
722
-
723
-
724
- ### Features
725
-
726
- * **android:** add onConfigurationChanged() activity lifecycle hook ([#3936](https://github.com/ionic-team/capacitor/issues/3936)) ([29e9e2c](https://github.com/ionic-team/capacitor/commit/29e9e2c5c30f23eb3ea2e88b1427eed0636e8125))
727
- * **android:** Add WebColor utility for parsing color ([#3947](https://github.com/ionic-team/capacitor/issues/3947)) ([3746404](https://github.com/ionic-team/capacitor/commit/3746404240459ca9ea8175f2bb241d80746e8328))
728
- * **Android:** Refactoring configuration ([#3778](https://github.com/ionic-team/capacitor/issues/3778)) ([9820a30](https://github.com/ionic-team/capacitor/commit/9820a30688f0a774eced1676f1927cacde53301f))
729
-
730
-
731
-
732
- # [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)
733
-
734
-
735
- ### Bug Fixes
736
-
737
- * **android:** dont release calls that are manually saved, eg listeners/watchers ([#3857](https://github.com/ionic-team/capacitor/issues/3857)) ([f1c8fe9](https://github.com/ionic-team/capacitor/commit/f1c8fe9e039d25eff2122fe915f17e84477427eb))
738
- * **android:** fixed breaking change to `handleOnActivityResult` ([#3888](https://github.com/ionic-team/capacitor/issues/3888)) ([5fd60e6](https://github.com/ionic-team/capacitor/commit/5fd60e607b79b46cec08c6af1674305b1199d0a4))
739
- * **android:** resolve undefined for both checkPermissions and requestPermissions by default ([#3855](https://github.com/ionic-team/capacitor/issues/3855)) ([383f62b](https://github.com/ionic-team/capacitor/commit/383f62b2b6531c579aac469e29b7c1c0c1f7540f))
740
-
741
-
742
- ### Features
743
-
744
- * automatically import Android plugins ([#3788](https://github.com/ionic-team/capacitor/issues/3788)) ([aa1e1c6](https://github.com/ionic-team/capacitor/commit/aa1e1c604e260cc8babb0e7f5230f692bdcf6f09))
745
- * **android:** Add handlePermissions function for plugins to call ([#3768](https://github.com/ionic-team/capacitor/issues/3768)) ([3a7e282](https://github.com/ionic-team/capacitor/commit/3a7e282a7515784dd343bbf1e3d52e0299bac887))
746
- * **android:** modified plugin annotation format for multi-permissions and empty (auto-grant) ([#3822](https://github.com/ionic-team/capacitor/issues/3822)) ([1b5a3bd](https://github.com/ionic-team/capacitor/commit/1b5a3bdeb1b35612cf04e58bdf2fca68a0832a14))
747
-
748
-
749
-
750
- # [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)
751
-
752
-
753
- ### Bug Fixes
754
-
755
- * **android:** avoid crash on input file capture ([#3715](https://github.com/ionic-team/capacitor/issues/3715)) ([f502a99](https://github.com/ionic-team/capacitor/commit/f502a9964e28012980d636014043e86e918031d7))
756
-
757
-
758
- ### Features
759
-
760
- * improve permissions ([eec61a6](https://github.com/ionic-team/capacitor/commit/eec61a6d8d8edfe94aea1a361787d1e6c736e20d))
761
- * unified errors and error codes ([#3673](https://github.com/ionic-team/capacitor/issues/3673)) ([f9e0803](https://github.com/ionic-team/capacitor/commit/f9e08038aa88f7453e8235f380d2767a12a7a073))
762
-
763
-
764
-
765
-
766
-
767
- # [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)
768
-
769
- **Note:** Version bump only for package @capacitor/android
770
-
771
-
772
-
773
- # [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)
774
-
775
- **Note:** Version bump only for package @capacitor/android
776
-
777
-
778
-
779
- # [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)
780
-
781
-
782
- **Note:** Version bump only for package @capacitor/android
783
-
784
-
785
-
786
- # [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)
787
-
788
- **Note:** Version bump only for package @capacitor/android
789
-
790
-
791
-
792
-
793
- # [3.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/2.4.0...3.0.0-alpha.1) (2020-08-21)
794
-
795
-
796
-
797
- # [3.0.0-alpha.0](https://github.com/ionic-team/capacitor/compare/2.3.0...3.0.0-alpha.0) (2020-07-23)
798
-
799
-
800
- ### Features
801
-
802
- * **android:** add custom plugins to BridgeFragment ([#3280](https://github.com/ionic-team/capacitor/issues/3280)) ([d131a5f](https://github.com/ionic-team/capacitor/commit/d131a5fed2b9ae29b6952397ec2f81104545b749))