【发布时间】:2016-02-02 11:28:31
【问题描述】:
我使用本文 (http://www.raymondcamden.com/2013/11/05/Ripple-is-Reborn/) 中解释的 Ripple,直到 2016 年 2 月 1 日,它运行得非常好。
我运行在:windows 8,Chrome:Version 48.0.2564.97 m,Ripple 0.9.32,cordova 4.0.0(带有cordova android 3.6.4)。
我的项目中安装了几个插件,其中包括 Media (apache.org.cordova.media)。直到本周初,它都运行良好,突然间我听到“噢,快!”当我通过 Ripple 和 Chrome (https://support.google.com/chrome/answer/95669?hl=en) 加载我的项目时,页面崩溃消息,来自谷歌的支持建议没有帮助。
为了弄清楚为什么它突然不工作了,我用 CLI 创建了一个“HelloWorld”Cordova 项目:“cordova create hello com.example.hello HelloWorld”。
我在 Ripple/Chrome 中运行它并且它工作正常(没有“Aw, Snap!”消息)。
然后我尝试向其中添加常规的 cordova 插件,例如: “cordova plugin add org.apache.cordova.file”等
通过测试,我注意到 Ripple/Chrome 可以正常工作,除非插件 org.apache.cordova.media 开启。在那种情况下,“啊,啪!”消息将由 Chrome 传递。
然后我将重点分析为什么该插件会成为麻烦的根源。我得出以下结论:“MediaError.js”携带的Cordova JavaScript 函数/对象“MediaError”与Chrome 下可以在JavaScript 中使用的另一个MediaError 函数发生冲突。
所以我找到了一个解决方法 - 不幸的是一个笨拙的解决方案 -。在“[cordova_project_name]\platforms\android\assets\www”下,我编辑了文件“cordova_plugin.js”并在评论中添加了有关MediaError的块:
/*{
"file": "plugins/org.apache.cordova.media/www/MediaError.js",
"id": "org.apache.cordova.media.MediaError",
"clobbers": [
"window.MediaError"
]
},*/
最后:不再是“噢,啪!”来自 Ripple/Chrome 的消息,但也不再有 cordova MediaError 功能。如果有人可以帮助我欺骗 Chrome 并告诉我我怎么能允许所有 Cordova Javascript 函数覆盖具有相似名称的任何其他 javascript 函数(然后绕过“Aw,Snap!”消息)?
【问题讨论】:
标签: javascript android cordova google-chrome ripple