У меня есть обратное приложение с файлом cshtml, которое в основном используется для аутентификации.
Теперь в моем приложении для Android в Котлине я использую WebView и JavascriptInterface для вызова нужного мне URL-адреса и вызова моего метода в ответ.
Есть полезные строки кода:
Активность при входе:
val myWebView: WebView = findViewById(R.id.connexionWebview)
myWebView.setWebViewClient(object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
view.loadUrl(url)
return false
}
})
myWebView.settings.javaScriptEnabled = true
myWebView.addJavascriptInterface(AuthenticatedHandler(this), "AndroidAuthenticatedManager")
myWebView.loadUrl("HiddenURL")
AuthenticatedHandler.kt:
class AuthenticatedHandler(private val mContext: Context): AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@JavascriptInterface
fun onAuthenticated(token: String, email: String, userId: Int) {
val intent = Intent(this, Home::class.java)
val extras = Bundle()
extras.putString("token", token)
startActivity(intent)
}
}
}`
У меня в спине, Authenticated.cshtml:
AndroidAuthenticatedManager.onAuthenticated('@token.AccessToken', '@email', @userId);
И это ошибка, которую я получил:
I/chromium: [INFO:CONSOLE(14)] "Uncaught TypeError: AndroidAuthenticatedManager.onAuthenticated is not a function", source: http://HidenURL:5000/Account/Authenticated (14)
Что вы думаете об этом? Я попробовал несколько небольших изменений и искал об этом в интернете, но ничего не исправило ...
Спасибо за ваше чтение,
Танги.