2.x.x -> 3.0.0
1.x.x -> 2.0.0
Eitri.contactspickContactBasic() and pickContactsBasic() open the native system picker and are built into eitri-machine, so they need no module and no contacts permission. Check isMultiplePickSupported() before offering a multi-selection affordanceisSupported(), streamAllContacts(), startContactsStream(), cancelContactsStream(), checkPermission(), requestPermission(), openContact(), pickContact(), createContact() and deleteContact() — require the optional contacts module. Guard them with Eitri.modules(), as the namespace resolves even when the module is absentContact.id cannot be used later to read that contact again without authorization. On Android below 17 the system offers a phone-number picker rather than a contact picker, so only the chosen number comes backpreserveBottomNavigation property to Eitri.nativeNavigation.open(). When the calling eitri-app runs inside a bottom tab navigation, the new view is stacked inside the selected tab and the bottom navigation stays visible; outside a bottom tab navigation the flag has no effectreplace only swaps a view previously stacked on the selected tab. When the calling eitri-app is the tab's own root, the root is preserved and replace degrades to a normal stacked openbridgeName and eventCallback properties of Eitri.webFlow.start()showCloseButton property to Eitri.webFlow.start(), which hides the web flow close button. Make sure the flow can still finish through a stopPattern, a maxNavigationLimit, or a page that calls window.close()window.close(), resolving with the navigation recorded so farstopPattern is now optional in Eitri.webFlow.start(). Omit it for flows that end by user action, by window.close(), by maxNavigationLimit, or by eventCallback, instead of passing a pattern that never matchesEitri.calendar, with the methods addEvent() and isAvailable()title, startDate, endDate, allDay, location, notes and recurrenceRule on both platformsrecurrenceRule accepts FREQ, INTERVAL, COUNT, UNTIL, BYDAY, BYMONTHDAY, BYMONTH, BYWEEKNO, BYYEARDAY and BYSETPOS, subject to the combinations the calendar allowsattendees, availability and accessLevel are Android only; url is iOS onlyisAvailable() as falsestopPattern in Eitri.webFlow.start(): matching is a plain substring test, not a regular expression, and regex metacharacters are treated literally. Flows that passed a real regular expression should be reviewedGeolocation namespaceEitri.geolocation.forwardGeocode() — resolves an address or place name into coordinates and structured address components.Eitri.geolocation.reverseGeocode() — resolves coordinates into structured address components.broadcast: true on eventBus.subscribe() and eventBus.publish() on iOS below 15.4.Eitri.fs.saveBase64()BottomBar.getState()Age Verification.headerStyle to WebFlowInputEitri.http.getStream()Eitri.http.postStream()Eitri.http.putStream()Eitri.http.deleteStream()Eitri.http.patchStream()Eitri.http.headStream()Eitri.http.optionsStream()Eitri.http.requestStream() — Axios-like syntax dispatching to the appropriate streaming method.Eitri.http.startStream() — Signals native to begin sending chunks after EventBus subscription.Eitri.http.cancelStream() — Cancels an active stream and releases the HTTP connection.WebFlow.start() via new cookies parameter and WebFlowCookie interface, with support for httpOnly, secure, and sameSite attributes.Eitri.http.delete() and Eitri.http.deleteStream() via the new HttpDeleteConfig.data option.Storage.setItem and Storage.setItemJson.StorageOptions and using it as a parameter for Storage namespace methods.SharedStorage namespace methods. Identical behaviour can be achieved through the usage of StorageOptions.shared.upgradeToBackgroundPermission in Geolocation namespace.speech recognition with partial results in Speech.Code Scanner documentation examples.Code Scanner.Speech.SMS User Consent.Google Pay documentation examples.followRedirects) in the HTTP namespace.Google Pay.
Eitri-Machine Modules.modulesMetadata
TrackingEitri.tracking.GA.init code example and documentation into GA.init(trackingId) and fixed it's indentation.Eitri.tracking.GA.init method when the Google Analytics domain is blocked on the device or network.clarity.init method when the Clarity domain is blocked on the device or network.resetStack option for Eitri.navigation.close()updateTabBadge methodaddVisibilityListener on keyboard namespace
Device namespace
Eitri.modules()
circular ref !! when trying to print Eitri.getConfigs()Eitri.camera.takePicture() method.Eitri.webFlow.start() methodEitri.http.upload()Eitri.notification.sendLocalPush internal method nameEitri.navigation.open methodEitri.navigation.open methodEitri.notification.listLocalPushes() method not receiving resultsEitri.mediaNotification namespaceEitri.fs.openImagePickerEitri.bottomBar namespaceversion available for eitri-apps using Eitri.getConfig().eitriAppData.versionGenerated using TypeDoc