android通过WebView的evaluateJavascript()调用JS
- 因为该方法的执行不会使页面刷新,而方法(loadUrl )的执行则会使页面刷新。
- Android 4.4 后才可使用
同:https://www.cnblogs.com/liuyj-vv/p/9583831.html
仅java代码不同,可以接收JS函数的返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | public class MainActivity extends Activity { WebView webView; Button buttonLeft, buttonRight; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = findViewById(R.id.webview); buttonLeft = findViewById(R.id.btnLeft); buttonRight = findViewById(R.id.btnRight); WebSettings webSettings = webView.getSettings(); //允许使用JS webSettings.setJavaScriptEnabled(true); // 设置允许JS弹窗 webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webView.loadUrl("file:///android_asset/index.html"); buttonLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { webView.post(new Runnable() { @Override public void run() { webView.evaluateJavascript("javascript:callJS()", new ValueCallback< String >() { @Override public void onReceiveValue(String s) { //将button显示的文字改成JS返回的字符串 buttonLeft.setText(s); } }); } }); } }); webView.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this); b.setTitle("alert1"); b.setMessage(message); b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { result.confirm(); } }); b.setCancelable(false); b.create().show(); return true; } }); } } |
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具