【问题标题】:Android - Webview (kitkat and below): Error In Java Script Function 'includes'Android - Webview(kitkat 及以下):Javascript 函数“包含”中的错误
【发布时间】:2017-10-30 06:01:09
【问题描述】:

尝试调用WebView,调用本地网页时报错

Uncaught TypeError: Object ["Some Object"] has no method : 'includes', 来源:file:///storage/sdcard0/MyDemo/js/fileName.js

它会给 Kitkat 和下面的错误。 它在 Kitkat 上正常工作。

使用下面的 gradle 设置运行良好

compileSdkVersion 25
buildToolsVersion "25.0.2"

和依赖

compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1

当前使用 Gradle 设置。

compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
    applicationId ""
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    multiDexEnabled true    
}

compile 'com.android.support:design:26.1.0'
compile 'com.android.support:support-v13:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0'

【问题讨论】:

  • 请更新您引用 filename.js 的 html 代码的问题。它需要链接为 file:///android_asset/js/filename.js
  • @Amod - 如果从 android 资产调用“本地”网页,那么我们需要链接为“file:///android_asset/”。上面的“本地”页面是“从设备的 sdcard 加载的”。

标签: javascript android webview build.gradle


【解决方案1】:

发生这种情况是因为您在 js 文件中的字符串上使用了 includes 方法,最新的 JavaScript 版本 ECMAScript 6 支持该方法,而 android kitkat webview 不支持此版本。

您需要使用indexOf 而不是includes

var str = "Hello world, welcome to the universe.";

var n = str.includes("world");
# Replace above line of code and use indexOf. 

var n = str.indexOf("world") > -1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2014-07-07
    相关资源
    最近更新 更多