Kotlin - Uncaught TypeError: X не является функцией - JavascriptInterface с WebViews - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть обратное приложение с файлом 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)

Что вы думаете об этом? Я попробовал несколько небольших изменений и искал об этом в интернете, но ничего не исправило ...

Спасибо за ваше чтение, Танги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...