gpt4 book ai didi

javascript - 将外部javascript函数应用于android

转载 作者:行者123 更新时间:2023-11-30 02:51:24 25 4
gpt4 key购买 nike

我正在开发使用 webview 控件呈现我的 HTML 文本的 android 应用程序如何在我的 android 代码中应用此 java 脚本函数来从 webview 控件中选择和复制文本,但是这是一个外部函数不在我的 HTML 页面内并且有返回值:

function getSelectedText() {
var txt;
if (window.getSelection) {
txt = window.getSelection();
} else if (window.document.getSelection) {
txt =window.document.getSelection();
} else if (window.document.selection) {
txt = window.document.selection.createRange().text;
}
return txt;
}

非常感谢。

最佳答案

如所述here ,您需要实现一个 JavaScript 接口(interface),将其附加到您的 webview,然后您可以从您的网页 HTML 中调用它的功能。

例如

在你的安卓代码中,

public class WebAppInterface {
Context mContext;

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

/** Show a toast from the web page */
@JavascriptInterface
public void getText(String text) {
Log.d("JsInterface", text)
Toast.makeText(mContext, text, Toast.LENGTH_SHORT).show();
}
}

然后在您的 webview 中附加它,

WebView webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "MyJSInterface");

然后在您的 HTML 页面中添加 JavaScript,如下所示,

<script type="text/javascript">
function getSelectedText() {
var txt;
if (window.getSelection) {
txt = window.getSelection();
} else if (window.document.getSelection) {
txt =window.document.getSelection();
} else if (window.document.selection) {
txt = window.document.selection.createRange().text;
}
MyJSInterface.getText(txt); // <-- this will be your function in WebAppInterface
}

// And add some code to invoke getSelectedText()
// on the event you are interested in.
</script>

关于javascript - 将外部javascript函数应用于android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24097215/

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