webview: match host
parent
e5745d0c05
commit
23c784f2cd
|
@ -42,6 +42,7 @@ import gallery.memories.databinding.ActivityMainBinding
|
||||||
private var mNeedRefresh = false
|
private var mNeedRefresh = false
|
||||||
|
|
||||||
private val memoriesRegex = Regex("/apps/memories/.*$")
|
private val memoriesRegex = Regex("/apps/memories/.*$")
|
||||||
|
private var host: String? = null
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -118,8 +119,9 @@ import gallery.memories.databinding.ActivityMainBinding
|
||||||
// Intercept local APIs
|
// Intercept local APIs
|
||||||
binding.webview.webViewClient = object : WebViewClient() {
|
binding.webview.webViewClient = object : WebViewClient() {
|
||||||
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
|
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
|
||||||
// TODO: check host as well
|
val pathMatches = request.url.path?.matches(memoriesRegex) == true
|
||||||
if (request.url.path?.matches(memoriesRegex) == true) {
|
val hostMatches = request.url.host.equals(host)
|
||||||
|
if (pathMatches && hostMatches) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +180,10 @@ import gallery.memories.databinding.ActivityMainBinding
|
||||||
|
|
||||||
// Load app interface if authenticated
|
// Load app interface if authenticated
|
||||||
if (authHeader != null && memoriesUrl != null) {
|
if (authHeader != null && memoriesUrl != null) {
|
||||||
|
// Get host name
|
||||||
|
host = Uri.parse(memoriesUrl).host
|
||||||
|
|
||||||
|
// Set authorization header
|
||||||
binding.webview.loadUrl(memoriesUrl, mapOf(
|
binding.webview.loadUrl(memoriesUrl, mapOf(
|
||||||
"Authorization" to authHeader
|
"Authorization" to authHeader
|
||||||
))
|
))
|
||||||
|
|
Loading…
Reference in New Issue