gpt4 book ai didi

javascript - 从在javascript中调用的Android函数获取值并将其返回给js

转载 作者:行者123 更新时间:2023-11-30 00:31:14 25 4
gpt4 key购买 nike

我已经尝试过此代码并卡住了很多天。
实际上我想要的是为数学公式集成 mathjax 库并从中获取输出。

 <html>
<head>
<style>
body{
background-color: #FA5858;
color:#fff;
}
input{
background-color: #F7D358;
width: 300px;
padding:10px;
color: #000;
}
div#content{
padding:20px;
background-color: #F7D358;
color: #000;
}
</style>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">

function showAndroidToast(toastmsg) {
var x= Android.showToast(toastmsg);
return x;
}

function testcall(toastmsg){
alert(showAndroidToast(toastmsg));
}
</script>
</head>
<body>
<center>
<h3>Binding JavaScript code to Android code</h3>
<div id="content">

</div>
<div>
Here are few examples:
When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</div>
<div>
<input type="button" value="Make Toast" onClick="testcall('Toast made by Javascript New:)')" /><br/>

</div>
</center>
</body>
</html>

这在我的 android 代码中

    public class WebAppInterface {
Context mContext;

/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}

/**
* Show Toast Message
* @param toast
*/
public String showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
String test="\\hspace1ex \\color{blue} {Simplify:} \\hspace1ex 2x(3x+2xy)";
return test;
}
}

但是我的 android 代码没有向 javascript 函数返回任何值。
感谢您的帮助。

喜欢,

这是我的android函数

   public String showToast() {

String test="\\hspace1ex \\color{blue} {Simplify:} \\hspace1ex 2x(3x+2xy)";
return test;
}

and in javascript i want the value that is return by this showToast() function

谢谢

最佳答案

这是我在应用程序中所做的:

设置 WebView :

  final WebView webView = new WebView(context);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebViewInterface(), "Android");
webView.loadUrl("file:///android_asset/web/page.html");

使用这个 WebViewInterface 实现:

import android.webkit.JavascriptInterface;

public class WebViewInterface {

@JavascriptInterface
public void log(String text) {
Log.d("TAG", text);
}
}

page.html 位于 assets/web 文件夹中,如下所示:

<!DOCTYPE html>

<html>
<head>
<script language="javascript" src="script.js"> </script>
</head>
<body>
</body>
</html>

script.js 文件也位于 assets/web 文件夹中:

function logText(text) {
Android.log(text);
}

function toBeCalledFromAndroid(text) {
// Do something in javascript
}

javascript中的logText函数调用了Android中的Navive log方法。

要从 native Android 代码调用 Javascript 函数,您必须执行以下操作:

String loadingUrl = "javascript:toBeCalledFromAndroid('" + text + "')";
webView.loadUrl(loadingUrl);

关于javascript - 从在javascript中调用的Android函数获取值并将其返回给js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29407501/

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