I am using the cordova in-app-browser plugin to oauth into salesforce. This used to work fine for both android and iOS but it seems to be broken now that I have updated capacitor and android to API 31 I am getting a variety of errors depending on my configuration. The original error was net::ERR_CLEARTEXT_NOT_PERMITTED
Which was solved by adding cleartext: true to my capacitor.config.ts file. But now I am getting ERR_CONNECTION_REFUSED.
It looks like you’re running both the Android emulator and your API on the same network, correct? Android emulator’s localhost is the emulator’slocalhost, not your computer. This is unlike the iOS simulator where localhost on the sim is localhost for your computer.
In your Capacitor code, to reach your local API, try replacing http://localhost/callback with http://10.0.2.2/callback. On the default Android emulator, 10.0.2.2 will forward requests to your computer’s localhost.
No, I am not running it on the same network. The way it works is there is a login website that is opened in in app browser. This is not being run locally, it is on the Salesforce.com platform. When the user enters their credentials within salesforce, the in app browser parses out the token and then they are authenticated in the app. But the callback here does not open. In the past, I had used the cordova whitelist plugin.
What is the URL for the ERR_CONNECTION_REFUSED? Is it for force.com or for 127.0.0.1? The Salesforce URL is using https which wouldn’t have triggered the ERR_CLEARTEXT_NOT_PERMITTED error; which led me to believe that your error was happening during callback, due to the localhost issue. My mistake!
Same here. I have created a minimalistic Angular 14 app. I use Capacitor, Android only, Trapeze for configuration. Trapeze allows me to wipe the android folder and rebuild it from scratch each time I make a change.
I have placed this into a public repository. I’d be grateful if anyone could try it and see if it works for you, or tell me what I am doing wrong. I incorporated all the advice I found on the StackOverflow, to no good result
step-1 : Run the emulator before serving the project
Navigate to the Android SDK Tools directory: Use the cd command to navigate to the directory where the Android SDK tools are located. By default, it is usually located at C:\Users\YourUsername\AppData\Local\Android\Sdk\emulator . Replace YourUsername with your actual Windows username.
List available emulators: Run the following command to see a list of available emulators:
command => emulator -list-avds
This command will display the names of the Android Virtual Devices (AVDs) that you have created.
Launch the emulator: To launch an emulator, use the following command, replacing avd_name with the name of the emulator you want to start:
command => emulator -avd avd_name
step 2 : run the capacitor serve
use this command
ionic cap run android --external --livereload --port=8010 --target=Pixel_4_API_33
Hello, I had the same problem, just remove hostname variable from capacitor.config, and use url instead with your external ipV4, for ex.:
In Windows you can run cmd: then ipconfig and get this IP from the end of results: for ex. IPv4 Address. . . . . . . . . . . : 192.168.1.26