gpt4 book ai didi

java - 如何从Vue中的Javascript调用Android中的java函数?

转载 作者:行者123 更新时间:2023-12-01 19:57:38 24 4
gpt4 key购买 nike

我有一个用 Vue 制作的项目。我想在手机上查看它,因此我创建了 Android 应用程序。因此我使用 WebView 组件。单击 vue-app 中的某些元素后,js 会调用 java,并且一些事件已经在 Android native 应用程序中进行。但这并没有发生。我认为,问题出在注入(inject) java 变量......

更正代码

Java

import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
import android.content.Context;

public class MainActivity extends AppCompatActivity {

private WebView webView;

public class JavaScriptInterface {
Context mContext;

JavaScriptInterface(Context c) {
mContext = c;
}

@JavascriptInterface
public void showInfoFromJs(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient());

webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(this), "androidinfo");
webView.loadUrl("https://jospro.ru/");
}

@Override
public void onBackPressed() {
if(webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}

}

<!-- Vue -->

<template>
<div class="align-items-center d-flex header-comp">
<div class="header-title-comp pl-3">
<div class="title-h1-comp" @click="showName">{{ loggedUser.firstname }}</div>
</div>
<div class="header-tarif-comp">Start</div>
</div>
</template>

<script>
import { mapGetters } from 'vuex'

export default {
name: 'ProfileHeader',

computed: {
...mapGetters([ 'loggedUser' ])
},

methods: {
showName() {
androidinfo.showInfoFromJs('js calls java');
}
},
}
</script>

最佳答案

请删除

view.loadUrl(url);

从MyWebViewClient中的shouldOverrideUrlLoading并将其放在webView.addJavascriptInterface之后的onCreate中。

关于java - 如何从Vue中的Javascript调用Android中的java函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59027072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com