Итак, у меня есть реактивный проект, но я решил отказаться от него, по той же причине, по которой airbnb перешел на собственную разработку (java / kotlin).Большую часть моего опыта я использую в Интернете, так что никаких мобильных нативных впечатлений, кроме hello world, смеется.Теперь я хочу использовать kotlin и хотел спасти большую часть моего кода, загрузив весь его в WebView, а затем, возможно, построить более естественным образом после того, как я получу больше знаний.(вероятно, 1 компонент WebView на действие / экран).И мне, вероятно, нужно преобразовать свой реагирующий нативный код в реагирующий веб, но я думаю, что я это понял.
Моя задача - вызывать / ссылаться на собственные возможности (например, камера, локальное хранилище) в js для вызовафункция kotlin или что-то в этом роде, но я думаю, что есть способы сделать это, но я не видел такого примера в kotlin, поэтому я изо всех сил.
Резюме:
загружать локальные html / js файлы в WebView
собственные функции вызова / доступа (например, камера, локальное хранилище) из WebView
до настоящего времени.. activity_main.xml
<WebView
android:id="@+id/webView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
MainActivity.kt
package com.example.kotlinwebview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView.settings.javaScriptEnabled = true
webView.settings.setSupportZoom(false)
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
}
}
}
}
app / src / main / assets / test.js
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width; user-scalable=0;" />
<title>JavaScript Interface</title>
</head>
<body>
<h1>This is HTML</h1>
<script language="javascript">
function someFunction() {
...
}
function someFunction2() {
...
}
function callFromActivity(msg){
...
}
</script>
</body>
</html>
Было бы круто, есливы, ребята, можете помочь мне с первым.