- Forum-Beiträge: 4
21.03.2020, 19:31:03 via Website
21.03.2020 19:31:03 via Website
Hallo, ich habe folgendes Problem:
Ich will mir eine App für meine Website erstellen. Dabei will ich, dass alle Seiteninterne Links in dem Webview-Container laden und die, die nicht meine Domain haben, sollen mit dem Systembrowser geöffnet werden. Dafür habe ich auch etwas passendes in der Dokumentation gefunden (darf noch keine Links senden, sorry), aber das scheint nicht zu funktionieren, denn beim kompilieren bekomme ich die Errors
Type mismatch: inferred type is Intent but Context was expected
No value passed for parameter 'p1'
No value passed for parameter 'p2'
Kann mir hier jemand helfen? Der Quellcode meiner MainActivity.kt ist:
package com.example.nikurasublog
import android.annotation.SuppressLint
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.core.content.ContextCompat.startActivity
class MainActivity : AppCompatActivity() {
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myWebView: WebView = findViewById(R.id.webview)
myWebView.settings.javaScriptEnabled = true
myWebView.webViewClient = MyWebViewClient()
myWebView.loadUrl("MeineURL")
}
}
private class MyWebViewClient : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
if (Uri.parse(url).host == "MeineDomain") {
return false
} else
Intent(Intent.ACTION_VIEW, Uri.parse(url)).apply {
startActivity(this)
}
return true
}
}
— geändert am 21.03.2020, 19:40:13
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.