Quantcast
Channel: Ionic Forum - Latest topics
Viewing all 70920 articles
Browse latest View live

iOS Firebase

$
0
0

Hi,

I have no problem to connect to Firebase or access Firestore from web or Android.

But from iOS, when compiled like an app through Xcode it doesn’t work. It’s like the connection can’t be established. It’s what I suppose because I’m not able to see any logs. I took 3 days on this issue and can’t solve it… Here is what I’ve done so far :

On Firebase : created an iOS app too (required ? or just web app ?)

  1. iOS app associated with the bundle id on Firestore (not sure it’s useful)
  2. GoogleService-Info.plist added to the Xcode project

Try to log in

  1. various tests carried out, it bugs at the signInAnonymously(auth) level it can’t be done.
  2. On Firebase, I have activated the anonymous connection and I have the users (my tests) in anonymous connection who appear in the list of users

HTTPS

  1. I have set NSAppTransportSecurity in the Info.plist for Xcode with NSAllowsArbitraryLoads in true

FYI : I think the problem is an https problem because I have 2 bugs: Firebase, I have nothing in result or in console logs so clearly there are 0 connections. I have another connection to a Google API via a GCP call which does not succeed but there the problem is explicit it is because of the CORS (I have console logs for that one).

DEBUG

  1. I tested setLogLevel(“debug”); which works great in web/android but nothing on iOS

If someone has a sample project which works with Firestore or know a link to it, I’ll be very happy to try it.

Thanks in advance for your help,
Thomas

1 post - 1 participant

Read full topic


CSP Frame Ancestors for Capacitor Apps with 3D Secure Payment Integration

$
0
0

I’m integrating a payment provider that uses a 3D Secure authentication iframe. The flow is as follows:

  1. The payment provider returns an HTML string for the 3D Secure authentication.
  2. This HTML is set as the srcdoc of an iframe in our app.
  3. Upon successful payment, the iframe redirects to a success URL (which we can configure in the payment provider’s panel).

To handle the redirect, I’m using our API server (different from the Capacitor webapp server) as the redirect target. This requires setting the CSP_FRAME_ANCESTORS on our API server to allow it to be framed by our webapp and Capacitor apps.

Currently, I have:
CSP_FRAME_ANCESTORS = ("'self'", "https://*.mywebapp.com", "file:", "my_app://")

This works for the web app but not for iOS and Android Capacitor apps. Interestingly, using "*" works for the webapp but still fails for mobile apps.

Questions:

  1. What CSP_FRAME_ANCESTORS configuration would allow framing in both web and Capacitor apps (iOS/Android)?
  2. Are there any Capacitor-specific considerations for handling iframes and CSP?
  3. Is there a better approach to handle 3D Secure redirects in a Capacitor app?

Any insights or best practices would be greatly appreciated!

1 post - 1 participant

Read full topic

Capacitor 7, Android 29, SplashScreen.hide.. not hiding

$
0
0

i just updated my app to Capacitor v7, and am testing it to be sure that all is good.

Being the glutton for punishment that I am, i’ve had a low bar of Android SDK v29. I’m finding that in my app initialization i need to put a delay of a couple hundred msec before I call SplashScreen.hide() or it never hides. Android SDK 33 and 35 seem just fine without it.

Anyone else seeing that? (or did I miss the part where you have to be on something > Android 11)

snippet from my AppShell.tsx

if (Capacitor.isNativePlatform()) {
  setTimeout(() => { // new code as a workaround.
    SplashScreen.hide(); // original code
  }, 200); 
} else {
// web things
}

Note, that I’m using the emulator, not a real device. I don’t have a device that old handy.

1 post - 1 participant

Read full topic

ionInfinite not firing

$
0
0

I am using ion-infinite-scroll with cdk-virtual-scroll-viewport but i have problem that when I scroll on the bottom that ionInfinite is not called

       <ion-content [scrollY]="false">
            <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
                <ion-refresher-content></ion-refresher-content>
            </ion-refresher>
            <cdk-virtual-scroll-viewport class="ion-content-scroll-host" itemSize="47" minBufferPx="900" maxBufferPx="1350">
                
                <ion-list>
                    <ion-item *cdkVirtualFor="let item of list">
                        {{ item.id }}
                    </ion-item>
                </ion-list>
            </cdk-virtual-scroll-viewport>

            <ion-infinite-scroll (ionInfinite)="onIonInfinite($event)">
                <ion-infinite-scroll-content></ion-infinite-scroll-content>
            </ion-infinite-scroll>
        </ion-content>

with css

.ion-content-scroll-host::before,
.ion-content-scroll-host::after {
    position: absolute;

    width: 1px;
    height: 1px;

    content: "";
}

.ion-content-scroll-host::before {
    bottom: -1px;
}

.ion-content-scroll-host::after {
    top: -1px;
}

cdk-virtual-scroll-viewport {
    height: 100%;
    width: 100%;
}

1 post - 1 participant

Read full topic

How to Disable Ionic CLI Update Notification in Version 3.20.0 When Running on Docker

$
0
0

I am running an Ionic 3 project using Docker, but I encountered the following issue when executing commands inside the container:

The Ionic CLI has an update available (3.20.0 => 5.4.16)! Would you like to install it? No
Not automatically updating your CLI

Since this prompt requires manual confirmation (Y/N), it prevents the Docker container from running smoothly. I need a way to disable this update notification properly in Ionic CLI 3.20.0 so that the container can execute commands without interruption.

What I Have Tried

  • Running npm install -g ionic@3.20.0 before executing other commands inside the container
  • Using environment variables like IONIC_CLI_DISABLE_UPDATE_CHECK (but it seems unsupported in this version)
  • Checking Ionic CLI config files for an option to disable update checks

Expected Solution

  • A correct way to disable the update notification in Ionic CLI 3.20.0
  • The solution must be Docker-compatible and should not require manual input

If anyone has encountered this issue and found a workaround, please share your insights. Thanks!

1 post - 1 participant

Read full topic

Bun support for ionic CLI

$
0
0

How can I use Bun as the default package manager with ionic CLI?

after updating the global config with

ionic config set -g npmClient bun

I got the following error when running ionic start

> ionic integrations enable capacitor --quiet -- my-app io.ionic.starter
Error: unknown installer: bun
    at pkgManagerArgs (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/utils/npm.js:54:19)
    at Integration.installCapacitorCore (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/integrations/capacitor/index.js:133:74)
    at Integration.add (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/integrations/capacitor/index.js:121:24)
    at async IntegrationsEnableCommand.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/commands/integrations/enable.js:64:17)
    at async Promise.all (index 0)
    at async IntegrationsEnableCommand.execute (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/command.js:104:9)
    at async Executor.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/executor.js:55:9)
    at async Executor.execute (/Users/kng/.bun/install/global/node_modules/@ionic/cli-framework/lib/executor.js:71:13)
    at async runCommand (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/executor.js:63:5)
    at async StartCommand.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/commands/start.js:601:17)

Seems that it fails when installing capacitor.

1 post - 1 participant

Read full topic

ionItemReorder event not triggering

Coming Soon! New updates & Features for Ionic’s Open Source Projects


Google Firebase signInWithPopup doesn't show on iOS using Ionic Capacitor

$
0
0

When using firebase.auth().signInWithPopup(googleAuthProvider);, it works fine in the web app, but nothing happens in the iOS simulator using Ionic Capacitor. Do I need to use some kind of in app browser? Is there another way to sign in with google using Ionic Capacitor?

2 posts - 2 participants

Read full topic

Android build error after Capacitor 6 to 7 upgrade

$
0
0

We are developing an Angular 18 application with Capacitor, for both iOS and Android. After updating the application based on the “Upgrade guide from v6 to v7” we are now experiencing a build error (below) when Android Studio rebuilds the project, i.e. before running the emulator:

> Task :capacitor-cordova-android-plugins:checkDebugAndroidTestDuplicateClasses FAILED
Execution failed for task ':capacitor-cordova-android-plugins:checkDebugAndroidTestDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.io.path.ExperimentalPathApi found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathRelativizer found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt__PathReadWriteKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt__PathUtilsKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.jdk7.AutoCloseableKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.jvm.jdk8.JvmRepeatableKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.random.jdk8.PlatformThreadLocalRandom found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$1 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$2 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$3 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$4 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.text.jdk8.RegexExtensionsJDK8Kt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.time.jdk8.DurationConversionsJDK8Kt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)

I have tried many different fixes in the gradle.build files, including ensuring the kotlin_version is set correctly (as per upgrade docs), specifying the kotlin-stdlib version, including exclusions for other groups / modules, etc. I have also invalidated the cache and restarted Android Studio, deleted my Gradle caches, obviously cleaned the project before the rebuild, etc, but nothing seems to work; and, looking at the gradle dependencies (below), everything seems to be using the correctly specified version for kotlin-stdlib .

./gradlew app:dependencies --configuration debugRuntimeClasspath | grep kotlin           
+--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.25 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.25 (c)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.25 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.25
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 (*)
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3
|         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c)
|         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c)
|         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 1.9.25
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.9.25 (*)
+--- org.jetbrains.kotlin:kotlin-bom:1.9.25
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.25 (c)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.25 (c)
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.25 (*)
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.25 (*)
|    |    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3
|    |    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*)
|    |    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*)
|    |    |    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.25 (*)
|    +--- org.jetbrains.kotlin:kotlin-bom:1.9.25 (*)

In terms of the Angular/Capacitor project we are using the following:

npm -v: 10.8.2
node -v: v22.3.0

./gradlew -version
------------------------------------------------------------
Gradle 8.11.1
------------------------------------------------------------

Kotlin:        2.0.20
Groovy:        3.0.22
Ant:           Apache Ant(TM) version 1.10.14 compiled on August 16 2023
Launcher JVM:  21.0.3 (Oracle Corporation 21.0.3+7-LTS-152)
Daemon JVM:    /Library/Java/JavaVirtualMachines/jdk-21.0.3.jdk/Contents/Home (no JDK specified, using current Java home)
OS:            Mac OS X 15.3.1 aarch64

------------------------------------------------------------

💊   Capacitor Doctor  💊 

Latest Dependencies:

  @capacitor/cli: 7.0.1
  @capacitor/core: 7.0.1
  @capacitor/android: 7.0.1
  @capacitor/ios: 7.0.1

Installed Dependencies:

  @capacitor/cli: 7.0.1
  @capacitor/core: 7.0.1
  @capacitor/android: 7.0.1
  @capacitor/ios: 7.0.1

[success] iOS looking great! 👌
[success] Android looking great! 👌

As mentioned above, there were no problems with Capacitor v6 the project built and the emulator worked with live reload applying changes made in IntelliJ to the Angular project, but cannot seem to get past this build error for v7, so any help is very greatly appreciated.

Many thanks in advance.

1 post - 1 participant

Read full topic

Deep linking - Supported web addresses Auto Enable

$
0
0

I added Android deep linking, but it’s not enabled by default. I have to enable it manually in settings.I want it to be enabled automatically.

already Add Intent Filter

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:host="xxx.xxx.com" android:scheme="https" />
            </intent-filter>

1 post - 1 participant

Read full topic

Detect if Dark Mode is Actually Active (not preference)

$
0
0

There are various strategies for applying “darkmode” css to an app. It could be hardcoded or it could be based on the user’s “system” preference or it could be toggled via JavaScript.

There are many posts online about how to detect the browser/system preference but how can we know if darkmode is actually currently active (regardless the preference)?

I don’t see anything in the DOM, classname or otherwise called “dark” which we could query.

1 post - 1 participant

Read full topic

Google Play Store ANR Report - Chromium-TrichromeWebViewGoogle

$
0
0

I got the email from google stating a crash in the app which is affecting the user and it is related to ANR and when i check the log it is related to Chromium-TrichromeWebViewGoogle but on my end i am not facing any crash or the app to hang.

1 post - 1 participant

Read full topic

ADAPUNDI WHATSAPP Resmi: 0821-2676-1949

$
0
0

:loudspeaker:NO LAYANAN ATAU CUSTOMER CARE ADAPUNDI Adalah Wa: 0821.26761949. Layanan Ini melayani berbagai Keluhan Terkait Pinjaman baik mau bayar atau Mau batal sampai mau Ajukan Pinjam. TIDAK MELAYANI PANGGILAN TELEPON

1 post - 1 participant

Read full topic

Best Practices for Optimizing Ionic App Performance?

$
0
0

Hey everyone,

I’m currently working on an Ionic app and trying to improve its performance, particularly in terms of loading times and responsiveness. While the app functions well, I’ve noticed some sluggishness when navigating between pages and rendering complex UI elements.

Here are a few specific areas where I’d love some advice:

  1. Lazy Loading & Routing: I’ve implemented lazy loading for pages, but are there any additional best practices or common pitfalls I should watch out for?
  2. Handling Large Lists: The app requires displaying long lists of data. I’m using ion-virtual-scroll, but I’ve read that it has some limitations. Are there better alternatives or techniques for managing large datasets efficiently?
  3. Reducing App Bundle Size: I want to keep my APK/IPA as lightweight as possible. What are the best strategies for optimizing assets, dependencies, and reducing overall app size?
  4. Performance Monitoring: Are there any recommended tools or plugins to profile and monitor an Ionic app’s performance in real time?
  5. Optimizing Animations & Transitions: I’ve noticed that certain animations (especially complex ones) feel jittery. Would you recommend using Ionic’s built-in animation utilities, or should I explore external libraries like GSAP or Lottie?

Any insights, best practices, or real-world experiences you can share would be greatly appreciated! Looking forward to learning from the community.

I also checked this: https://forum.ionicframework.com/t/managing-memory-best-practices-in-lazy-loaded-app/python

Thanks in advance!

1 post - 1 participant

Read full topic


How to Disable Clipboard Content Restriction into Input field

$
0
0

When User is Trying to enter Content from Clipboard I need to Prevent it from entering into input or Disable Clipboard in Keyboard itself

1 post - 1 participant

Read full topic

Unifying Plugins across Ionic and OutSystems

$
0
0

Originally published at: Unifying Plugins across Ionic and OutSystems - Ionic Blog

One of the more exciting aspects of Ionic joining OutSystems was comparing our portfolios of supported plugins. Does Ionic provide functionality OutSystems is missing? Does OutSystems have plugins without a Capacitor equivalent? How do we bring the best of both worlds to OutSystems’ low-code and Ionic’s open-source communities? Some decisions were easy. For instance, Ionic…

1 post - 1 participant

Read full topic

Updating Ionic Capacitor project to work with new ios privacy manifest requirements

$
0
0

I’m a bit lost here and need some guidance. Also willing to pay for some assistance.

I need to meet the new Privacy Manifest requirements as I fail for 11 of the SDKs, so I am updating my project which has been a nightmare as I have limited time.

I have already updated firebase and Angular fire and then had to update Angular to v16 plus updated several other packages. I updated Capacitor from 5 to 5.7.8.

I’m using the Ionic Vscode extension and it has not recommended that I add a Privacy Manifest yet.

How can I tell what packages I need to update based on the SDK’s mentioned in the rejection email from the app store?

I would update everything to the latest version but I am trying to minimize breaking changes.

Packages:

"dependencies": {
    "@angular/animations": "^16.2.12",
    "@angular/cdk": "^16.2.14",
    "@angular/common": "^16.2.12",
    "@angular/core": "^16.2.12",
    "@angular/fire": "^16.0.0",
    "@angular/forms": "^16.2.12",
    "@angular/material": "^16.2.14",
    "@angular/platform-browser": "^16.2.12",
    "@angular/platform-browser-dynamic": "^16.2.12",
    "@angular/router": "^16.2.12",
    "@capacitor-community/fcm": "^5.0.2",
    "@capacitor-community/firebase-analytics": "^5.0.1",
    "@capacitor-community/stripe": "^5.2.0",
    "@capacitor/android": "^5.7.8",
    "@capacitor/app": "^5.0.8",
    "@capacitor/core": "^5.7.8",
    "@capacitor/device": "^5.0.8",
    "@capacitor/ios": "^5.7.8",
    "@capacitor/keyboard": "^5.0.6",
    "@capacitor/network": "^5.0.6",
    "@capacitor/push-notifications": "^5.1.0",
    "@capacitor/screen-orientation": "^5.0.7",
    "@capacitor/splash-screen": "^5.0.6",
    "@capacitor/status-bar": "^5.0.6",
    "@fortawesome/angular-fontawesome": "^0.13.0",
    "@fortawesome/fontawesome-svg-core": "^6.7.2",
    "@fortawesome/free-brands-svg-icons": "^6.7.2",
    "@fortawesome/free-regular-svg-icons": "^6.7.2",
    "@fortawesome/free-solid-svg-icons": "^6.7.2",
    "@ionic-native/app-availability": "^5.31.1",
    "@ionic-native/clipboard": "^5.31.1",
    "@ionic-native/core": "^5.31.1",
    "@ionic-native/file": "^5.36.0",
    "@ionic-native/ionic-webview": "^5.36.0",
    "@ionic-native/launch-navigator": "^5.31.1",
    "@ionic-native/mobile-accessibility": "^5.31.1",
    "@ionic-native/screen-orientation": "^5.31.1",
    "@ionic-native/splash-screen": "^5.31.1",
    "@ionic-native/status-bar": "^5.31.1",
    "@ionic/angular": "^6.4.2",
    "@ionic/storage-angular": "^4.0.0",
    "@pantrist/capacitor-firebase-dynamic-links": "^5.0.1",
    "@sentry/angular-ivy": "^7.102.1",
    "@types/googlemaps": "^3.43.3",
    "@types/hammerjs": "^2.0.39",
    "@types/stripe-v3": "^3.1.23",
    "@usermaven/sdk-js": "^1.3.3",
    "angular-animations": "^0.11.0",
    "canvas-confetti": "^1.9.2",
    "capacitor-ios-autofill-save-password": "^2.0.0",
    "compare-versions": "^3.6.0",
    "cordova-clipboard": "^1.3.0",
    "cordova-plugin-actionsheet": "^2.3.3",
    "cordova-plugin-appavailability": "^0.4.2",
    "cordova-plugin-device": "git+https://github.com/apache/cordova-plugin-device.git",
    "cordova-plugin-dialogs": "^2.0.2",
    "cordova-plugin-file": "^6.0.2",
    "cordova-plugin-network-information": "git+https://github.com/apache/cordova-plugin-network-information.git",
    "cordova-plugin-screen-orientation": "^3.0.2",
    "es6-promise-plugin": "^4.2.2",
    "firebase": "^11.3.1",
    "hammerjs": "^2.0.8",
    "i": "^0.3.7",
    "i18n-iso-countries": "^4.3.1",
    "moment": "^2.29.1",
    "moment-timezone": "^0.5.40",
    "ng-lazyload-image": "^9.1.3",
    "ngx-build-plus": "^16.0.0",
    "ngx-pipes": "^3.2.2",
    "ngx-spinner": "^16.0.2",
    "npm": "^10.4.0",
    "phonegap-plugin-mobile-accessibility": "^1.0.5",
    "rxjs": "^6.5.3",
    "sweetalert2": "^8.19.0",
    "swiper": "^11.2.4",
    "tslib": "^2.4.1",
    "uk.co.workingedge.phonegap.plugin.launchnavigator": "^5.0.5",
    "uninstall": "^0.0.0",
    "voucher-code-generator": "^1.1.1",
    "zone.js": "~0.13.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^16.2.16",
    "@angular/cli": "^16.2.16",
    "@angular/compiler": "^16.2.12",
    "@angular/compiler-cli": "^16.2.12",
    "@angular/language-service": "^16.2.12",
    "@bahmutov/cy-grep": "^1.8.0",
    "@capacitor/cli": "^5.7.8",
    "@cypress/xpath": "^2.0.3",
    "@firebase/testing": "^0.20.11",
    "@ionic/angular-toolkit": "^2.3.0",
    "@ionic/lab": "3.2.10",
    "@types/cypress": "^1.1.3",
    "@types/moment-timezone": "^0.5.30",
    "@types/node": "^12.19.15",
    "autoprefixer": "^10.2.5",
    "codelyzer": "^6.0.0",
    "cypress": "^13.5.0",
    "flex-gap-polyfill": "^2.2.1",
    "patch-package": "^8.0.0",
    "postcss": "^8.2.10",
    "postcss-import": "^12.0.1",
    "postcss-loader": "^4.2.0",
    "postcss-scss": "^3.0.5",
    "protractor": "~7.0.0",
    "replace-in-file": "^5.0.2",
    "ts-node": "~8.3.0",
    "tslint": "~6.1.0",
    "typescript": "^4.9.3"
  },

SDK’s mention in email from app store:

Frameworks/Capacitor.framework/Capacitor
Frameworks/Cordova.framework/Cordova
Frameworks/FBLPromises.framework/FBLPromises
Frameworks/FirebaseCore.framework/FirebaseCore
Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics
Frameworks/FirebaseDynamicLinks.framework/FirebaseDynamicLinks
Frameworks/FirebaseInstallations.framework/FirebaseInstallations
Frameworks/FirebaseMessaging.framework/FirebaseMessaging
Frameworks/GoogleDataTransport.framework/GoogleDataTransport
Frameworks/GoogleUtilities.framework/GoogleUtilities
Frameworks/nanopb.framework/nanopb

Email from app store repeated this 11 times for the SDK’s:
ITMS-91061: Missing privacy manifest - Your app includes “Frameworks/Capacitor.framework/Capacitor”, which includes Capacitor, an SDK that was identified in the documentation as a commonly used third-party SDK. If a new app includes a commonly used third-party SDK, or an app update adds a new commonly used third-party SDK, the SDK must include a privacy manifest file. Please contact the provider of the SDK that includes this file to get an updated SDK version with a privacy manifest. For more details about this policy, including a list of SDKs that are required to include signatures and manifests, visit: Third-party SDK requirements - Support - Apple Developer.

1 post - 1 participant

Read full topic

Issue with Ngx-Formly use to Ionic 8

$
0
0

Hi everyone,


I recently started a new Ionic Angular project using Ionic 8 and integrated the latest version of Ngx-Formly. However, I’m facing compilation errors related to Formly’s Radio Component, which depends on RadioValueAccessor. It seems this has been removed in Ionic 8.

I’m already using the native ion-radio component and have extended it in the FieldType class. Also, I’m not using Formly-Ionic components anywhere, yet I still encounter this error.

Here are the dependencies in my project:

@ngx-formly/core”: “^6.3.12”,
@ngx-formly/ionic”: “^6.3.12”,
@ngx-formly/schematics”: “^6.3.12”,
@ionic/angular”: “^8.3.1”,
@angular/cli”: “^18.0.0”

1 post - 1 participant

Read full topic

Formatting options with ion-select interface=modal

$
0
0

Hi All

First post!

I am working with Ionic 8 and Vuejs.

I cannot for the life of me figure out how to format the modal background and text on an ion-select with the interface=‘modal’ option?

I have passed in a className via interface-options but nothing seems to work wrt getting the formatting to stick. I have tried the CSS modal shadow classes, etc but it all just fails to change anythign.
I am so utterly confused!

Can anyone please help?

Apples Oranges Bananas .test-css-class { --background: blue; color: red; --height: 50%; --border-radius: 16px; }

1 post - 1 participant

Read full topic

Viewing all 70920 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>