package com.camilleboittiaux.stoopit import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.content.pm.PackageManager import android.os.Bundle import android.webkit.GeolocationPermissions import android.webkit.WebChromeClient import android.webkit.WebView import android.webkit.WebViewClient import androidx.core.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat class MainActivity : AppCompatActivity() { private var webView: WebView? = null protected override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Demander la permission de localisation if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED ) { ActivityCompat.requestPermissions( this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), LOCATION_PERMISSION_REQUEST ) } webView = findViewById(R.id.webView) // Configurer le WebView val webSettings = webView!!.getSettings() webSettings.setJavaScriptEnabled(true) webSettings.setDomStorageEnabled(true) webSettings.setGeolocationEnabled(true) webSettings.setAllowFileAccess(true) webSettings.setAllowContentAccess(true) // Activer la géolocalisation webView!!.setWebChromeClient(object : WebChromeClient() { override fun onGeolocationPermissionsShowPrompt( origin: String?, callback: GeolocationPermissions.Callback ) { callback.invoke(origin, true, false) } }) // Garder la navigation dans le WebView webView!!.setWebViewClient(WebViewClient()) // Charger votre application // REMPLACEZ par votre URL Vercel ou OVH webView!!.loadUrl("https://VOTRE-URL-VERCEL-OU-OVH.com") } // Gérer le bouton retour public override fun onBackPressed() { if (webView!!.canGoBack()) { webView!!.goBack() } else { super.onBackPressed() } } // Gérer la réponse de permission public override fun onRequestPermissionsResult( requestCode: Int, permissions: Array?, grantResults: IntArray ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) if (requestCode == LOCATION_PERMISSION_REQUEST) { if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Permission accordée, recharger la page webView!!.reload() } } } companion object { private const val LOCATION_PERMISSION_REQUEST = 1 } }