It is a known android "issue" that you cant commit/show a fragment while in background. The reason is, as explained [here](https://medium.com/@113408/avoid-fragment-illegalstateexception-can-not-perform-this-action-after-onsaveinstancestate-ba76ae4f00fe) or [here](https://stackoverflow.com/questions/15729138/on-showing-dialog-i-get-can-not-perform-this-action-after-onsaveinstancestate), that `onSaveInstanceState` is already called so any operation before activity start would be with state loss. There are 2 solutions in this case: * use `commitAllowingStateLoss`, `dismissAllowingStateLoss` ... but then you loose state ... This is what we are doing in N in many cases. We can do this with `show` too but we would need to override the `DialogFragment.show` method. * delay the action until the activity is resumed. This PR uses the second solution. We could add an option to `showModal` to use the first solution. The user experience is different. Solution 1: when the app is resumed the modal is already shown and layed out. Solution 2: you see the modal opening on app resume
NativeScript empowers you to access native APIs from JavaScript directly. Currently iOS, Android, and visionOS runtimes are provided for rich mobile development across a variety of diverse use cases.
Contribute
-
Clone to contribute:
$ git clone https://github.com/NativeScript/NativeScript.git
$ cd NativeScript
# setup workspace for development
$ npm run setup
# list all available commands to run
$ npm start
We love you and your pull requests 🤗. Please follow our contributing guide and see our code of governance to become as involved as you want to be.
@nativescript/*
- @nativescript/core Singular primitives offering an easy-to-use API surface for diverse iOS/visionOS/Android APIs implemented with NativeScript.
- @nativescript/types Types for both iOS/Android below wrapped up as a convenience. Most commonly used.
- @nativescript/types-ios Types for iOS.
- @nativescript/types-android Types for Android.
- @nativescript/types-minimal A very minimal set of types for only the latest Android and iOS sdks. Most commonly used to optimize Web-based IDE's which auto load all type declarations from node_modules.
- @nativescript/ui-mobile-base UI mobile base native classes used by core.
- @nativescript/webpack Webpack build utilities and configs used by NativeScript apps.
Quick Links
- NativeScript Home
- NativeScript Tutorials
- NativeScript documentation
- JavaScript starter: https://nativescript.new/javascript
- TypeScript starter: https://nativescript.new/typescript
- Angular starter: https://nativescript.new/angular
- React starter: https://nativescript.new/react
- Solid starter: https://nativescript.new/solid
- Svelte starter: https://nativescript.new/svelte
- Vue starter: https://nativescript.new/vue
- NativeScript on Twitter
- NativeScript on Discord
- NativeScript on Stack Overflow
Other source repos
Outside the source centralized in this repo, NativeScript consists of a few other source repos. Here are the major ones:
- iOS and visionOS Runtime Empowers JavaScript code to be executed on iOS and visionOS devices written in a mix of C++, Objective-C, and Swift.
- Android Runtime Empowers JavaScript code to be executed on Android devices written in a mix of C++, Java and Kotlin.
- CLI Command-line interface empowering you to create, build, and run apps using NativeScript.
- Docs Documentation available at http://docs.nativescript.org/ written in Markdown.
- Plugins Various TSC managed plugins. Also a good reference is the plugin marketplace with several additional plugins.
- Firebase Modular Firebase 🔥 implementation for supported platforms.
- ML Kit Google's ML Kit SDKs for supported platforms.
- Payments In-App Purchase, Subscriptions, Google Pay and Apple Pay.
- Artwork Want to use our logo or colors? Feel free to use any of our ready-to-use media material.
Copyright notice
Copyright OpenJS Foundation and NativeScript contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | OpenJS Foundation Bylaws | Trademark Policy | Trademark List | Cookie Policy
