Привет всем. Такая проблема: у меня, вместо того, чтобы в webview Android Studio открывался сайт, он высвечивается на белом экране (а когда его для проверки открываешь в другом браузере, открывается не он, а реклама казино с другого сайта, что странно). Как решить эту проблему? Я все уже перепробовал: и загрузку URL поставил после WebViewClient, и hardwareAccelerated false сделал, а результат прежний.
Вот фаргмент кода с LoadingActivity, где из БД считывается домен:
class LoadingActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_loading)
val database = Firebase.database("https://test-apk-1-fa3be-default-rtdb.firebaseio.com")
val myRef = database.getReference("db/link")
if(myRef!=null){
myRef.addValueEventListener(object: ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
// This method is called once with the initial value and again
// whenever data at this location is updated.
val value = snapshot.value.toString()
toWebActivity(value)
}
override fun onCancelled(error: DatabaseError) {
toMainActivity()
}
})
} else{
toMainActivity()
}
}
fun toMainActivity(){
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
fun toWebActivity(value: String){
val webIntent = Intent(this,WebActivity::class.java)
webIntent.putExtra("Домен",value)
startActivity(webIntent)
}
}
Это фрагмент кода с WebActivity, где собственно у меня проблема:
class WebActivity : AppCompatActivity() {
lateinit var binding: ActivityWebBinding
val uuid = UUID.randomUUID().toString()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityWebBinding.inflate(layoutInflater)
setContentView(binding.root)
val webIntent: Intent = intent
val domen = webIntent.getStringExtra("Домен")
val webSettings: WebSettings = binding.webView.settings
webSettings.javaScriptEnabled = true
binding.webView.settings.domStorageEnabled = true
CookieManager.getInstance().setAcceptThirdPartyCookies(binding.webView,true)
binding.webView.webViewClient = WebViewClient()
binding.webView.loadUrl("$domen/?packageid=$packageName&usserid=$uuid&getz=Europe/Moscow&getr=utm_source=google-play&utm_medium=organic")
}
override fun onBackPressed() {
if(binding.webView.canGoBack())
super.onBackPressed()
}
}
Это код с Layout XML файла (для WebActivity):
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".WebActivity">
<WebView
android:id="@+id/webView"
android:hardwareAccelerated="false"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
А это скрин страницы с WebView, то, что собственно происходит со страницей при тестировании: