未捕获的SyntaxError:旧版Android上的意外保留字

时间:2018-05-22 15:55:46

标签: javascript android cordova

我正在使用cordova编程应用程序并在Android 8.0.0上测试它工作正常。 但是在我朋友的手机上(android 4.4.4),它不起作用,我在控制台日志中收到了这些错误。

Uncaught SyntaxError: Unexpected reserved word Widget.js:9
Uncaught SyntaxError: Unexpected reserved word Image.js:8
Uncaught SyntaxError: <unknown message reserved_word> Button.js:7
Uncaught SyntaxError: <unknown message reserved_word> TextArea.js:8
Uncaught SyntaxError: <unknown message reserved_word> Effect.js:8
Uncaught SyntaxError: Unexpected reserved word View.js:9
Uncaught SyntaxError: <unknown message reserved_word> User_interface.js:8
Uncaught SyntaxError: <unknown message reserved_word> Communication.js:8
Uncaught SyntaxError: <unknown message reserved_word> App.js:7

这些错误会阻止关键字“class”

Uncaught SyntaxError: Unexpected token ) index.js:16

并阻止:

AndroidFullScreen.immersiveMode(()=>{},()=>{});

在这里我认为它不识别箭头功能,但我不确定。

我想知道我是否可以解决它,或者手机对我的应用来说太旧了? 如果您需要其他信息告诉我,我会提供给他们:)

提前致谢

2 个答案:

答案 0 :(得分:2)

在Android 4.4 cordova使用旧的Android浏览器之前(非常支持html 5)。

从Android 4.4开始,Android浏览器被Chrome取代,但webview使用的Chrome版本无法升级(版本36为4.4)。

自Android 5.0以来,chrome现在在apk中并且可以更新。

箭头功能需要至少45的Chrome版本,这就是您的应用在朋友的手机上无法正常工作的原因。

如果希望您的应用能够正常使用早于Android 5的手机,您可以:

  • 不要使用最近的javasctipt(检查caniuse上的支持)
  • 使用crosswalk插件将webview嵌入到您的应用中

Crosswalk本来应该总是使用最新版本的铬但不幸的是项目没有更新,所以你也无法使用最新的javascript更新。 (最新版本的Crosswalk使用铬版本53,比android 4.4中使用的36版本更新)

Crosswaalk的优势在于您的应用程序在所有设备上都支持html / js / css,因此您可以了解应用在所有设备上的行为/外观。

使用Crosswalk会导致更大的APK,因此并不总是最佳选择。

您还可以构建两个不同的apk版本,一个用于android&lt; 5.0,另一个用于较新版本。

答案 1 :(得分:0)

您是否知道有人将原始铬和更新的铬分配到55或更高?