Ionic 8 tidak bisa mengakses data mysql padahal saat menggunakan ionic serve data vase dapat di akses dengan normal.
hal ini dapat dikarenakan beberapa sebab.
1. Perhatikan Protokol HTTP/HTTPS
Gunakan HTTPS
Pada Android 9 (Pie) dan yang lebih baru, koneksi HTTP non-aman akan diblokir secara default. Pastikan backend Anda menggunakan HTTPS.
Jika server Anda belum memiliki SSL, Anda bisa menggunakan layanan seperti Let's Encrypt untuk mendapatkan sertifikat SSL gratis.
Setelah HTTPS aktif, ubah URL API Anda menjadi https://.
2. Buat File network_security_config.xml
Buat file XML di folder res/xml/network_security_config.xml (buat folder xml jika belum ada).
Isi file network_security_config.xml:
<network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">primbon.oncrit.my.id</domain> </domain-config> </network-security-config>
Konfigurasi di AndroidManifest.xml
Tambahkan referensi ke file network_security_config.xml di dalam tag <application>:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<!-- Izin internet -->
<uses-permission android:name="android.permission.INTERNET" />
<application
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher">
...
</application>
</manifest>
Penjelasan:
<network-security-config>:
Mengatur kebijakan keamanan jaringan.
cleartextTrafficPermitted="true": Mengizinkan koneksi HTTP (non-HTTPS).
<uses-permission>:
Mengizinkan aplikasi untuk mengakses internet.
Referensi File Konfigurasi:
Atribut android:networkSecurityConfig menunjuk ke file res/xml/network_security_config.xml.
Catatan Penting
Gunakan HTTPS: Sangat disarankan untuk menggunakan HTTPS di server Anda. Jika menggunakan HTTP, itu hanya untuk pengujian dan pengembangan.