Я использую последнюю версию PhoneGap и выполняю Ajax-вызовы.
function setting_main() {
var smsid = localStorage.getItem('registrationId');
var model = device.model;
var uui = device.uuid;
var platform = device.platform;
var url_webservice = 'http://mywebsite.com/webservice/db.php';
$.ajax({
type: 'POST',
url: url_webservice,
data: 'act=check_device&model=' + model+'&uui='+uui+'&platform='+platform+'&smsid='+smsid,
dataType: 'json',
success: function (res) {
localStorage.setItem("unit", res.unit);
localStorage.setItem("id_device", res.id);
localStorage.setItem("login_before", res.login_before);
localStorage.setItem("user_id", res.user_id);
localStorage.setItem("user_key", res.user_id);
localStorage.setItem("user_type", res.user_type);
localStorage.setItem("user_key_parent", res.user_key_parent);
if(res.login_before==0){
window.location.replace('login.html');
}else{
if(res.user_type!=1) {
window.location.replace('groups.html');
}else{
window.location.replace('groups_teacher.html');
}
}
}
});
}
document.addEventListener('deviceready', setting_main, false);
Раньше этот код работал, но на этой неделе, когда я тестирую свое приложение в настольном браузере или мобильном приложении PhoneGap Developer, оно работаетхорошо, но после сборки приложения (.apk) запросы ajax не работают и падают скорее на сбой, чем на успех.Я выполнил все упомянутые конфигурации, включая:
<preference name="DisallowOverscroll" value="false" />
<preference name="android-minSdkVersion" value="17" />
<preference name="android-targetSdkVersion" value="26" />
<preference name="orientation" value="portrait" />
<plugin name="cordova-plugin-battery-status" spec="~1.2.2" />
<plugin name="cordova-plugin-camera" source="npm" spec="~2.1.1" />
<plugin name="cordova-plugin-media-capture" source="npm" spec="~1.2.0" />
<plugin name="phonegap-plugin-barcodescanner" source="npm" spec="~6.0.0"/>
<plugin name="cordova-plugin-console" source="npm" spec="~1.0.2" />
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />
<plugin name="cordova-plugin-device-motion" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-device-orientation" source="npm" spec="~1.0.2" />
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="~1.3.0" />
<plugin name="cordova-plugin-media" source="npm" spec="~2.2.0" />
<plugin name="cordova-plugin-network-information" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-splashscreen" source="npm" spec="~3.2.1" />
<plugin name="cordova-plugin-statusbar" source="npm" spec="~2.1.2" />
<plugin name="cordova-plugin-whitelist" spec="~1.3.1" />
<plugin name="cordova-plugin-vibration" spec="~2.1.3" />
<plugin name="phonegap-plugin-push" source="npm" spec="~1.8.0">
<variable name="SENDER_ID" value="407902603339" />
</plugin>
<plugin name="cordova-android-support-gradle-release" source="npm" spec="~1.4.5"/>
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
<platform name="android">
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
Также добавил метатеги Content-Security-Policy в мой HTML и указал на домен, где находится мой API:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src 'self' 'unsafe-inline' 'unsafe-eval';
script-src 'self' 'unsafe-inline' 'unsafe-eval';">
Я использую сервис build.phonegap.com для сборки приложения.Пожалуйста, мне действительно нужна помощь, поскольку я сделал все исправления, которые смог найти, но пока безуспешно.