Framework7+Vue+Axios работает в браузере, но не в приложении для Android
Я использовал шаблон app-framework для приложения framework7+vue. Затем я установил Axios. код отлично работает в браузере во время тестирования. но когда я запускаю команду npm run android и запускаю это приложение в эмуляторе устройства, оно не может получить данные с сервера.
Я искал причину.
Ajax-запрос работает в браузере, но не на устройстве Android
Axios не работает на Android после сборки Phonegap
белый кордовый список по умолчанию в framework7. так это причина того, что мои вызовы ajax терпят неудачу в приложении для Android? как это настроить? в структуре проекта нет config.xml, вместо этого у меня есть config.json.
ниже приведены оба моих кода для config.json и home.vue, где я использую axios.
config.json
{
"title": "Sollywood",
"defaultLanguage": "en",
"defaultLanguageFallback": false,
"theme": "material",
"color": "indigo",
"layout": "default",
"statusbarVisibility": true,
"statusbarTextColor": "white",
"statusbarBackgroundColor": "#000000",
"iconBackgroundColor": "#ffffff",
"useIconFonts": {
"framework7": false,
"material": false,
"ion": false,
"fontawesome": false
},
"limitApplicationWidth": 320,
"limitApplicationHeight": 570,
"showPhoneFrameOnDesktop": true,
"framework7parameters": {},
"materialSubnavbarFix": true,
"restoreHistory": true,
"restoreComponentData": true,
"completeRoutesFile": true,
"firebase": {
"apiKey": "",
"authDomain": "",
"databaseURL": "",
"storageBucket": "",
"projectId": "",
"allowEmailLogin": false,
"allowEmailRegistration": false
},
"devFirebase": {
"deployDevRulesOnTesting": false,
"apiKey": "",
"authDomain": "",
"databaseURL": "",
"storageBucket": "",
"projectId": "",
"allowEmailLogin": false,
"allowEmailRegistration": false
},
"appStoreId": "",
"playStoreId": "",
"useCordovaPlugins": [
"cordova-plugin-whitelist"
],
"cordovaPreferences": {
"DisallowOverscroll": true
},
"resetLocalStorageOnVersionChange": false,
"preloadImages": true,
"buildSourcemaps": false,
"fixCodeOnTest": true,
"fixCodeOnBuild": true,
"devServerPort": "8081"
}
Мой код Home.vue:
<template>
<f7-page>
<f7-navbar :title="$root.config.title" />
<!-- Home Page Search Bar -->
<f7-searchbar
cancel-link="Cancel"
placeholder="Search in items"
:clear-button="true"
></f7-searchbar>
<!-- Home Page Banner -->
<f7-swiper :params="{autoplay: 2000}">
<f7-swiper-slide v-for="item in bannerLinks" :key="item.id"><img :src="item" width="100%" height="200px" class="lazy" ></f7-swiper-slide>
</f7-swiper>
<f7-block inner inset>{{$lang('text')}}</f7-block>
<f7-block inner>
<ul>
<li v-for="bannerLink in bannerLinks" :key="bannerLink.id">{{ bannerLink }}</li>
</ul>
</f7-block>
<f7-block>
<f7-button big fill raised bg="green" href="https://github.com/scriptPilot/app-framework/blob/master/DOCUMENTATION.md" external>Documentation</f7-button>
</f7-block>
</f7-page>
</template>
<script>
import axios from 'axios'
export default {
data: function () {
return {
bannerLinks: []
}
},
created () {
axios.get('http://localhost:8080/sollywood/public/skills').then(Response => { this.bannerLinks = Response.data })
}
}
</script>
Редактировать: Добавление config.xml из поставки cordova-plugin-whitelist с framework7
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.app_framework.dev_build" version="0.0.1709211819" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Sollywood</name>
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<platform name="android">
<allow-intent href="market:*" />
<icon density="hdpi" src="icons\android-icon-hdpi-72x72.png" />
<icon density="ldpi" src="icons\android-icon-ldpi-36x36.png" />
<icon density="mdpi" src="icons\android-icon-mdpi-48x48.png" />
<icon density="xhdpi" src="icons\android-icon-xhdpi-96x96.png" />
<icon density="xxhdpi" src="icons\android-icon-xxhdpi-144x144.png" />
<icon density="xxxhdpi" src="icons\android-icon-xxxhdpi-192x192.png" />
<splash density="port-hdpi" src="icons\android-splash-hdpi-480x800.png" />
<splash density="land-hdpi" src="icons\android-splash-hdpi-800x480.png" />
<splash density="port-ldpi" src="icons\android-splash-ldpi-200x320.png" />
<splash density="land-ldpi" src="icons\android-splash-ldpi-320x200.png" />
<splash density="port-mdpi" src="icons\android-splash-mdpi-320x480.png" />
<splash density="land-mdpi" src="icons\android-splash-mdpi-480x320.png" />
<splash density="port-xhdpi" src="icons\android-splash-xhdpi-1280x720.png" />
<splash density="land-xhdpi" src="icons\android-splash-xhdpi-720x1280.png" />
</platform>
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<engine name="android" spec="^6.2.3" />
<plugin name="cordova-plugin-statusbar" spec="^2.2.3" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
</widget>