2017-01-17 8 views
0

В настоящее время работает над мобильным приложением в Кордове и начинает разработку/тестирование на Android. Все, кажется, работает хорошо и, как ожидалось, на платформе Android. При переходе на iOS мы столкнулись с проблемами. Решили пойти с плагином WKWebView, и это, казалось, помогло с некоторыми вещами, однако, я использую сервер, чтобы извлекать данные через API, и я больше не могу. До использования плагина WKWebView API вызывался и правильно загружал информацию. Я использую access origin в config.xml для доступа к этому API. Основная причина, по которой мы не можем вернуться к использованию WKWebView, - это некоторые странные проблемы с рендерингом, а прокрутка не была прокруткой «бросить/бросить». Вы должны были постоянно прокручивать «вверх» или «вниз», чтобы заставить его двигаться.WKWebView и XHR

Было интересно, может ли кто-нибудь здесь подумать о том, как использовать плагин WKWebView, загружая локальный сервер, чтобы обслуживать файлы www из (mine localhost: 0), а также использовать access origin для доступа к API.

Мой config.xml

<?xml version='1.0' encoding='utf-8'?> <widget id="com.test.testmobile" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name>Test</name> <description> Mobile App for Android and iOS </description> <author email="[email protected]" href="test.com"> test </author> <content src="http://localhost:0" /> <access origin="http://10.1.0.215:6002" /> <platform name="android"> <allow-intent href="market:*" /> </platform> <platform name="ios"> <allow-intent href="itms:*" /> <allow-intent href="itms-apps:*" /> </platform> <plugin name="cordova-plugin-whitelist" spec="1" /> <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" /> <preference name="AlternateContentSrc" value="http://localhost:0" /> </widget>

ответ

0

Я использую сервер для извлечения данных через API, и я не могу больше.

Предполагая, что этот API находится на внешнем сервере, вы обращаетесь с AJAX/XHR, ответ сервера должен содержит заголовки CORS для того, чтобы WKWebView принять его (см this Cordova issue).

Основная причина, по которой мы не можем вернуться к использованию WKWebView, возникли некоторые странные проблемы с рендерингом, и прокрутка была не прокруткой «бросить/бросить». Вы должны были постоянно прокручивать «вверх» или «вниз», чтобы заставить его двигаться.

Если WKWebView с Кордовой становится невыносимым (here список известных проблем), вы можете рассмотреть iScroll в качестве решения для нативных-чувств прокрутки в UIWebView.