- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将外部文件中的 javascript 函数加载到 Android Kitkat 中的 webview 时遇到问题。我对早期版本的方法是实现我自己的 webview 客户端,并在方法 onPageFinisned 中调用
mWebView.loadUrl("javascript:" + functions);
后来,当我想调用一些js方法时,我调用相同的代码,比如
mWebView.loadUrl("javascript:" + someFunction);
在 android kitkat 中有一个新方法 evaluateJavascript,它通过调用那个 javascript 函数来替换我的代码。我的问题是现在这个和旧方法抛出这个错误:
Uncaught ReferenceError: function is not defined
问题似乎出在将 javascript 函数加载到 webview 上,但我不知道如何以其他方式加载它。谢谢
最佳答案
对我有用的是将 JavaScript 函数放在网页中,在 <script>
中标签:
<html>
<head>
<title>Android GeoWebTwo Demo</title>
<script language="javascript">
function whereami(lat, lon) {
document.getElementById("lat").innerHTML=lat;
document.getElementById("lon").innerHTML=lon;
}
function pull() {
var location=JSON.parse(locater.getLocation());
whereami(location.lat, location.lon);
}
</script>
</head>
<body>
<p>
You are at: <br/> <span id="lat">(unknown)</span> latitude and <br/>
<span id="lon">(unknown)</span> longitude.
</p>
<p><a onClick="pull()">Update Location</a></p>
</body>
</html>
然后,我就可以成功使用evaluateJavascript()
了:
public void onLocationChanged(Location location) {
StringBuilder buf=new StringBuilder("whereami(");
buf.append(String.valueOf(location.getLatitude()));
buf.append(",");
buf.append(String.valueOf(location.getLongitude()));
buf.append(")");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
browser.evaluateJavascript(buf.toString(), null);
}
else {
browser.loadUrl("javascript:" + buf.toString());
}
}
(两个代码 fragment 都来自this sample app)
这适用于新旧版本的 Android。现在,就我而言,我的 JavaScript 恰好与 DOM 发生冲突,所以无论如何我都需要一个网页。你的 <body>
可能是空的, 网页就在那里提供 JavaScript 函数。
关于javascript - 将javascript函数加载到Android Kitkat中的webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21207748/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
Kitkat HCE(NFC) 设备可以与另一台 Kitkat HCE(NFC) 设备通信吗? 我想编写应用程序将数据从一台 Kitkat HCE(NFC) 设备传输到另一台 Kitkat HCE(N
我在 KitKat 上收到以下错误,但在 Android M 及更高版本上没有问题: 2145-2145/com.cafeapps.stroydownloader E/dalvikvm: Could
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
问题 我的应用程序支持 4.0+,它完全是关于文件处理的。它适用于除 Kitkat 之外的所有 Android 版本。 在 Kitkat 中,我的应用无法修改或写入 SD 卡中的任何文件。但我看到各种
我有一个从我的服务器转换时间的函数,它在 android api 24 上运行良好,但现在我在 KitKat (Api 19) 上进行测试,时间转换无法正常工作。两个设备接收相同的数据,但转换不一样。
到目前为止,当使用 LocationClient 获取用户的最后已知位置时,我没有遇到任何问题,例如在 Jelly Bean 上进行测试。 我有一部 KitKat 手机进行测试,我发现在设置 -> 位
该问题仅在使用新的 WebView 机制的 KitKat 上出现。 基本上我加载了 12 张图片,一张接一张地连续加载。我希望 WebView 加载一行中的所有图像并自动缩放 webView 以覆盖整
我正在开发一个类似于 SMS 黑名单/白名单的应用程序。它现在不是 SMS 应用程序。 目标是: 如果该号码在黑名单中,它会阻止用户接收/发送短信,并且不会出现在他的短信应用程序中。 如果号码在白名单
因此,在我正在构建的应用程序中,我获取手机中的所有联系人并将其显示在 ListView 中。一切正常,直到我将手机 (HTC One) 从 4.1.2 升级到 4.4.2。我不再获取联系人的图像/个人
我在我的应用程序中使用了开关小部件。当我在 Lollipop 上运行应用程序时,它运行良好。但是当我运行 kitkat 版本时,它会崩溃。 xml设计: switchdb.xml
我正在尝试加载图像。当我使用 API 18 或更低版本时,这很好用,但如果我使用 API 19 (Kitkat),则会出现安全问题......我不确定如何解决这个,但是 cursorloader 给我
我收到 Android 4.4.4 用户关于我的动画呈现奇怪问题的投诉。到目前为止,我没有收到任何其他 Android 版本的投诉。我也无法在模拟器中复制错误(或者在我的 Nexus 7 上,这两个投
大家好,我正在开发一个消息应用程序,并按照谷歌博客 link here 的所有说明进行操作 它工作得很好。但是当我的应用程序作为默认消息应用程序工作时我遇到问题我想将消息保存在我的应用程序数据库以及设
我正在尝试利用新的 KitKat 半透明系统栏,在我的应用背景中获得全屏图像。 我无法确定正确的设置来获得我想要的行为。现在,我有一个 ViewPager 和三个 Fragment,每个由一个 Rel
我在Play商店发布的一些应用在android 4.4和onwords上崩溃了 相同的应用程序可在其他版本的Android上使用。 这个问题与os或其他有关吗? 最佳答案 是的,问题与操作系统有关。从
在你降级之前,我知道当你用谷歌搜索时,有与这个主题相关的类似问题。甚至它已经在 Stackoverflow 中得到了多次回答。 然而,尽管我阅读了所有这些主题,但它们都没有解决我的问题。我的代码适用于
我有一个Recyclerview。在它的适配器中,这就是我所拥有的: @Override public void onBindViewHolder(@NonNull ViewHolder holde
我正在 imageView 中查看来自 url 的图像,该代码适用于 android lollipop 和较新版本,但不适用于 android Kitkat 和旧版本,它返回空白图像而不是 url图片
我真的试过了,广播接收器没有收到新的短信广播。我在我的手机 4.4.4 上运行,我只想收听传入的消息,也就是说。
我是一名优秀的程序员,十分优秀!