Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixes your app needs in a more #14

Open
Woroc opened this issue Jan 30, 2025 · 0 comments
Open

fixes your app needs in a more #14

Woroc opened this issue Jan 30, 2025 · 0 comments

Comments

@Woroc
Copy link

Woroc commented Jan 30, 2025

Your app currently allows unencrypted HTTP traffic (like sending postcards instead of sealed letters). Not great for security!

In your AndroidManifest.xml, change this:

android:usesCleartextTraffic="true"  

to:

android:usesCleartextTraffic="false"  

Why? This forces HTTPS. If you really need HTTP (like for a local server), only allow it for specific addresses – don’t leave the door wide open!


2. Links Sneaking Out the Back 🕵️

What's happening?
When users click links, they’re kicked out to Chrome/Safari.

Keep navigation in-house:
Add this to your MainActivity.kt to make links stay within your app’s WebView:

webView.webViewClient = WebViewClient() // 

No more escape routes your app keeps control.

3. The Silent Crash 💥

Uh-oh:
If the index.html file goes missing, the app crashes without a warning. Users will be confused!

Wrap your WebView load in a safety net:

try {
    webView.loadUrl("file:///android_asset/index.html")
} catch (e: Exception) {
    Toast.makeText(this, "Oops! Content didn’t load.", Toast.LENGTH_SHORT).show()
}

Now users get a friendly heads-up instead of a crash.


4. Back Button Betrayal 🔙

Annoyance:
Tapping "back" closes the app even if there’s web history. Feels abrupt!

Fixed it:
Add this to MainActivity.kt:

override fun onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack() // Let users backtrack in the WebView
    } else {
        super.onBackPressed() // Exit gracefully if no history
    }
}

Makes navigation feel natural.


5. Library Shelf Dusting 📚

Old books alert:
Some of your app’s dependencies are outdated. Time for a refresh!

Update your build.gradle to use the latest tools:

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.0'         // Fresh like new paint
    implementation 'com.google.android.material:material:1.11.0' // Modern UI components
    // ... (other updated versions)
}

Newer libraries = fewer bugs + cooler features.


6. WebView Fort Knox Mode 🛡️

Security tweaks:
Your WebView is a bit too trusting. Let’s tighten security:

val settings = webView.settings
settings.javaScriptEnabled = true  // Only if you need JS!
settings.allowFileAccess = false   // No peeking into device files

Like locking the drawers you don’t use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant