javascript - 上下文将数据设置为字符串并传递 javascript webview,仅适用于“数字”
问题描述
我尝试将数据从数据库传递到 webview 表单,现在可以工作,但是如果我只添加数据库中的数字,例如代码为 123,区域为 567,如果代码为 123-4,区域为法国,则 webview html 没有任何显示...任何帮助,请我想要 webview 上的数字和单词......???
MainActivity.java
void setCodeAndRegion(final String code, final String region) {
webview.post(new Runnable() {
@Override
public void run() {
webview.evaluateJavascript("javascript:setCodeAndRegion(" + code + "," + region + ");", null);
}
});
}
弹出对话框.java
listRegion.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final String region = (String) listRegion.getItemAtPosition(position);
SQLiteDatabase database = context.pdfDatabaseManager.getReadableDatabase();
final Cursor c = database.rawQuery("Select * From " + PDFDatabaseManager.DATABASE_REGION_TABLE + " WHERE "+ PDFDatabaseManager.KEY_REGION +"='"+region+"'", null);
String code = "";
while (c.moveToNext())
code = c.getString(1);
c.close();
context.setCodeAndRegion(code,region);
a.dismiss();
}
});
.html
var setCodeAndRegion = function(code, region){
document.getElementById('test1').value = code;
document.getElementById('test2').value = region;
alert (region);
}
解决方案
问题可能是您在函数中作为参数传递的值setCodeAndRegion
。由于它们是字符串(至少对于该区域而言),因此您需要引号("或')。
void setCodeAndRegion(final String code, final String region) {
webview.post(new Runnable() {
@Override
public void run() {
webview.evaluateJavascript("javascript:setCodeAndRegion('" + code + "', '" + region + "');", null);
}
});
}
还行吧:
"javascript:setCodeAndRegion('" + code + "', '" + region + "');"
这不会被 javascript 很好地解释:
"javascript:setCodeAndRegion("+ code + ", " + region + " );"
仅仅是因为 javascript 将无法将其识别为一个值。它会变成这样:
setCodeAndRegion(123-5, England );
推荐阅读
- javascript - 在反应传单中获取标记的纬度和经度
- postgresql - 无法从 golang Docker 容器连接到 Postgres 数据库
- user-interface - 如何使用按钮调用函数以在 Tkinter 中显示文本
- wordpress - 如何使用 elementor 在移动导航中添加社交图标
- reactjs - 如何在 GraphQL Relay 中捕获查询的响应
- apache-kafka - 不同的消费者从 Kafka 主题的分区中的不同键读取数据
- postgresql - 为@OneToMany 实体多次保留现有实体(重复键)
- python - 为不同视频的视频帧创建新目录时出错
- amazon-web-services - 使用 Lambda 函数在 S3 存储桶中创建缩略图
- java - 如何退出 appium 驱动程序并在没有会话 ID 的情况下运行另一个测试是空错误