我正在使用 Android WebView 并尝试在使用 evaluateJavascript 调用 WebView 后处理从 Java 端的 WebView 返回的 JavaScript 承诺。
文档.java
Button buttonAnnotations = findViewById(R.id.buttonAnnotations);
buttonAnnotations.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
wv.evaluateJavascript("javascript:getAnnotations();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
}
});
}
});
索引.html
async function getAnnotations() {
await pdfViewer.getAnnotations().then(result => {
return JSON.stringify(result ,null,2);
});
}
如果我将 getAnnotations() 函数更改为不是异步的并返回一个字符串一切正常,所以我试图弄清楚如何在 java 代码中处理这个 promise 以获得结果。
我见过一些类似的问题,但在这种情况下似乎没有一个答案有效。