Senin, 30 Desember 2024

Ionic 8 tidak bisa mengakses data mysql

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:

<?xml version="1.0" encoding="utf-8"?> <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.