Сообщение Ripple Cordova Chrome aw snap, когда плагин Media является частью проекта

Я использую Ripple, как описано в этой статье (http://www.raymondcamden.com/2013/11/05/Ripple-is-Reborn/), и до 1 февраля 2016 года он работал очень хорошо.

Я работаю на: Windows 8, Chrome: версия 48.0.2564.97 m, Ripple 0.9.32, Cordova 4.0.0 (которая поддерживает Cordova Android 3.6.4).

В моем проекте было установлено несколько плагинов, в том числе Media (apache.org.cordova.media). До начала этой недели он работал просто отлично, и вдруг я получил "Ой, Snap!" сообщение о сбое страницы, когда я загружал свой проект через Ripple и Chrome (https://support.google.com/chrome/answer/95669?hl=en), советы службы поддержки Google не помогли.

Чтобы выяснить, почему он внезапно не заработал, я создал проект Cordova «HelloWorld» с помощью CLI: «cordova create hello com.example.hello HelloWorld».

Я запустил его в Ripple/Chrome, и это сработало (без сообщения «Ой, Snap!»).

Затем я попытался добавить к нему обычные плагины Cordova, например: «плагин Cordova add org.apache.cordova.file» и т. д.

В ходе тестов я заметил, что Ripple/Chrome будет работать правильно, за исключением случаев, когда включен плагин org.apache.cordova.media. И именно в этом случае "Ой, Snap!" сообщение будет доставлено Chrome.

Затем я сосредотачиваюсь на анализе того, почему этот плагин может быть источником проблем. Я пришел к следующему выводу: Функция/объект Cordova JavaScript "MediaError", переносимый "MediaError.js", конфликтует с другой функцией MediaError, которую можно использовать в JavaScript в Chrome.

Поэтому я нашел обходной путь - к сожалению, неуклюжее решение. В разделе «[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 и сказать мне, как я могу позволить всем функциям JavaScript Cordova переопределять любые другие функции JavaScript с похожими именами (и затем обходить сообщение «Ой, Snap!»)?


person nyluje    schedule 02.02.2016    source источник


Ответы (2)


Спасибо за публикацию результатов вашего исследования, это сэкономило мне много времени! Я не думаю, что вы действительно можете исправить Chrome. Лучше опубликовать это как ошибку/запрос и подождать. До тех пор вы можете просто использовать более старую версию Chrome для отладки, как это делаю я. Вы можете скачать старую версию Chrome здесь: http://www.oldversion.com/windows/google-chrome-46-0-2490-80-enterprise-version

person Amadare42    schedule 04.02.2016

Это ошибка в Chrome, о которой сообщила команда MS.

Итак, вот два способа обойти эту проблему, пока хром не исправит ее или команда MS не придумает лучшее решение.

  1. В Visual Studio щелкните Инструменты -> Параметры.

  2. Найдите инструменты для Apache

  3. Cordova Нажмите кнопку «Очистить кэш Cordova».

  4. Перестройте свой проект

or

  1. Откройте командную строку

  2. компакт-диск %AppData%\npm\node_modules\vs-tac

  3. npm обновить пульсирующий эмулятор

Вот официальный сообщение от MSTeam. Чтобы отследить эту ошибку, о которой сообщалось в chromium, перейдите по этой ссылке

person The Blue Shirt Developer    schedule 04.03.2016
comment
Привет, @Webruster, спасибо за отзыв, но, поскольку я не использую VS, он мне не нужен. Также вчера я обновился до Chrome 50.0.2661.75. И сообщение aw snapp с рябью вернулось (я открыл новый вопрос об этом stackoverflow.com/questions/36699614/). Сталкивались ли вы с такой же проблемой с новым Chrome? - person nyluje; 19.04.2016