Я работаю над проектом javascript, клиент требует, чтобы он был опубликован в AppStore. Мы решили работать с PhoneGap, поскольку он проделал за нас большую часть работы и результаты были удовлетворительными. Однако производительность на некоторых устройствах Apple была низкой по сравнению с приложением, работающим только в Safari.
Прочитав UIWebView и узнав, как он устарел, я решил попробовать WKWebView в надежде, что производительность будет хотя бы немного лучше.
Я успешно установил Кордова-плагин-wkwebview-engine, что привело меня к проблемам с XHR, которые, как я видел, возникают у многих людей. Однако я нашел решение через этот пост https://stackoverflow.com/a/42953116/10551718
Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь воспроизвести то, что сделал этот джентльмен, я получаю ошибки в сборке PhoneGap, касающиеся Кордова-плагин-wkwebview-engine-localhost, в которых говорится, что он не может клонировать репозиторий git.
Build Date: 2018-10-24 04:20:25 -0700
--------------------------------------------------------------------------------
PLUGIN OUTPUT
--------------------------------------------------------------------------------
Fetching plugin "cordova-plugin-splashscreen" via npm
Installing "cordova-plugin-splashscreen" at "5.0.2" for ios
Fetching plugin "cordova-plugin-wkwebview-engine" via npm
Installing "cordova-plugin-wkwebview-engine" at "1.1.4" for ios
"plugman-151 install --platform ios --project /project --plugin https://github.com/apache/cordova-plugins.git#wkwebview-engine-localhost --nohooks=.": Fetching plugin "https://github.com/apache/cordova-plugins.git" via git clone
Using shallow clone
Repository "https://github.com/apache/cordova-plugins.git" checked out to git ref "wkwebview-engine-localhost" at "a3cc931".
Installing "cordova-labs-wkwebview-engine-localhost" at "0.5.1" for ios
Fetching plugin "git+https://github.com/apache/cordova-plugins.git" via git clone
Cloning full repository
Failed to install 'cordova-labs-wkwebview-engine-localhost': Error
at /.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/pgb-cordova-lib/src/plugman/fetch.js:100:37
at _rejected (/.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:864:24)
at /.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:890:30
at Promise.when (/.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:1142:31)
at Promise.promise.promiseDispatch (/.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:808:41)
at /.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:624:44
at runSingle (/.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:137:13)
at flush (/.nvm/versions/node/v8.1.4/lib/node_modules/pgb-plugman-151/node_modules/cordova-common/node_modules/q/q.js:125:13)
at _combinedTickCallback (internal/process/next_tick.js:95:7)
at process._tickCallback (internal/process/next_tick.js:161:9)
Failed to fetch plugin git+https://github.com/apache/cordova-plugins.git via git.
Either there is a connection problems, or plugin spec is incorrect:
Error: git: Command failed with exit code 128 Error output:
Cloning into '/var/folders/lt/xxbrk07x45bdj1fl3wjgf8yc0000gn/T/git/1540380025411'...
fatal: Unable to find remote helper for 'git+https'
У меня это в конфиге ...
<plugin name = "cordova-plugin-splashscreen" source = "npm" />
<plugin name = "cordova-plugin-wkwebview-engine" source = "npm" />
<plugin name = "cordova-plugin-wkwebview-engine-localhost" spec = "https://github.com/apache/cordova-plugins.git#wkwebview-engine-localhost" />
<content src = "http://localhost" />
<feature name = "CDVWKWebViewEngine">
<param name = "ios-package" value = "CDVWKWebViewEngine" />
</feature>
<preference name = "CordovaWebViewEngine" value = "CDVWKWebViewEngine" />
Любая помощь будет принята с благодарностью!
Можем ли мы изменить версию узла, которую использует PhoneGap?
нам нужно настроить версию узла только на нашей машине
Я не совсем понимаю, что вы имеете в виду, ведь версия узла на моей машине не влияет на процесс сборки PhoneGap, верно?
Сделайте изменение версии узла последним, сначала попробуйте конфигурацию, которую предлагает здесь документ
Не могли бы вы объяснить, как я на самом деле собираюсь вносить эти изменения, и не могли бы вы дать мне ссылку на этот документ, на который вы ссылаетесь. Спасибо за помощь.
хорошо, как мне проверить, какую версию cordova-ios я использую, и обновить ее через PhoneGap config.xml?
npm info cordova
, вероятно, может предоставить вам текущую информацию о сборке, для обновления плагинов переустановите их или удалите, установите
Я думаю, вы не поняли, что я делаю. Я использую build.phonegap.com/apps, чтобы загрузить свой проект и получить скомпилированный .ipa. У меня нет возможности запускать команды npm с помощью этого метода, все управляется через файл config.xml, который я загружаю.
В итоге я нашел альтернативный плагин - https://github.com/ionic-team/cordova-plugin-ionic-webview
Это установилось без проблем и правильно включило WKWebView, что привело к значительному увеличению производительности!
Можете попробовать переключить версию узла с 8.11 на 6.xx, это может помочь. В документации говорится, что добавьте
<content src = "http://localhost:0" />
, где для 0 он может выбрать любой свободный порт, а также для плагина требуется как минимум версия4.1.0 cordova-ios
.