Sebagai alat pembangunan merentas platform, uniapp mempunyai banyak kemudahan dalam proses pembangunan, tetapi apabila melaksanakan pembungkusan awan, kami mungkin menghadapi masalah apabila meminta rangkaian.
Baru-baru ini semasa pembangunan uniapp, saya menggunakan fungsi awan uniCloud dan antara muka API untuk mengagregatkan data Walau bagaimanapun, saya menghadapi masalah tidak dapat meminta rangkaian semasa pembungkusan awan, yang membuatkan saya sangat tertekan.
Selepas banyak ujian dan pertanyaan dokumen yang berkaitan, saya mendapati bahawa ini disebabkan oleh mod kotak pasir didayakan oleh pembungkusan awan uniapp secara lalai Dalam mod kotak pasir, permintaan rangkaian berada dalam keadaan terhad dan tidak boleh meminta kepada rangkaian luaran.
Jadi, seterusnya saya akan memperkenalkan secara terperinci bagaimana untuk menyelesaikan masalah pembungkusan awan uniapp tidak dapat meminta rangkaian.
Sebelum pembungkusan awan, kami perlu mengubah suai konfigurasi pembungkusan dan kotak pasir mod Kotak uniapp dimatikan, yang boleh menyelesaikan masalah pembungkusan awan tidak dapat meminta rangkaian. Kami menambah kod berikut dalam fail manifest.json
:
"app-plus":{ "sandbox":false }
Seperti yang ditunjukkan dalam kod di atas, kami perlu menambah konfigurasi app-plus
dalam nod sandbox
dan menetapkannya kepada false
untuk membolehkan mod kotak bukan pasir.
Walau bagaimanapun, perlu diingat bahawa menghidupkan mod bukan kotak pasir akan mempunyai risiko keselamatan tertentu, jadi hanya mengendalikannya apabila senario aplikasi sangat diperlukan.
Penyelesaian lain ialah menambah senarai putih rangkaian untuk membolehkan aplikasi mengakses rangkaian luaran. Kita boleh mencapai ini dengan menambah kod berikut dalam fail manifest.json
:
"app-plus":{ "networkTimeout":{ "request":30000, "connectSocket":30000, "uploadFile":30000, "downloadFile":30000 }, "debug":false, "subpackages":[], "permission":{ "scope.userLocation":{ "desc":"你的位置信息将用于小程序位置接口的效果展示" } }, "navigateToMiniProgramAppIdList":[], "preloadRule":{ "page":{ "alias":[], "path":[] }, "network":{ "include":[ "**/**/*.png", "**/**/*.jpg", "**/**/*.jpeg", "**/**/*.gif", "**/**/*.svg", "**/**/*.js", "**/**/*.css", "**/**/*.wxss", "**/**/*.wxml" ], "exclude":[] }, "package":{ "exclude":[], "include":[] }, "plugin":{ "exclude":[], "include":[] } }, "navigateToKeepAliveList":[], "subscribeMessage":{ "tmplIds":[] }, "usingComponents":{}, "sandbox":false, "style":{ "navigationBarTitleText":"" }, "window":{ "navigationBarBackgroundColor":"#fff", "navigationBarTextStyle":"black", "navigationBarTitleText":"uni-app", "backgroundColor":"#F5F5F5", "backgroundTextStyle":"light", "enablePullDownRefresh":false, "enableBackToTop":false, "navigationStyle":"default" }, "networkTimeout":{ "request":10000, "connectSocket":10000, "uploadFile":10000, "downloadFile":10000 }, "networkSecurity":{ "sslPinning":true }, "navigateToMiniProgram":{ "appParam":{ "xxParam":"yy" } }, "plugins":{ "myPlugin":{ "version":"*", "provider":"wxidxxxxxxxxxxxxxxxxx" } }, "cloud":{ "functionUrl":"https://api.xxx.com" }, "requiredBackgroundModes":["audio"] }, "networkTimeout":{ "request":10000, "connectSocket":10000, "uploadFile":10000, "downloadFile":10000 }, "networkSecurity":{ "sslPinning":true }, "navigateToMiniProgram":{ "appParam":{ "xxParam":"yy" } }, "plugins":{ "myPlugin":{ "version":"*", "provider":"wxidxxxxxxxxxxxxxxxxx" } }, "cloud":{ "functionUrl":"https://api.xxx.com" }, "requiredBackgroundModes":["audio"] }
Secara khusus, kita perlu menambah konfigurasi berikut di bawah nod app-plus
:
"networkSecurity":{ "sslPinning":true }, "cloud":{ "functionUrl":"https://api.xxx.com" }
Dalam kod di atas , Atribut networkSecurity
dalam nod sslPinning
digunakan untuk memastikan keselamatan permintaan rangkaian, manakala atribut cloud
nod functionUrl
menambah senarai putih permintaan rangkaian pada aplikasi kami, membenarkan aplikasi kami mengakses API antara muka.
Setakat ini, kami telah berjaya menyelesaikan masalah pembungkusan awan uniapp tidak boleh meminta rangkaian Jika anda juga menghadapi masalah yang sama, saya harap artikel ini dapat membantu anda.
Atas ialah kandungan terperinci pembungkusan awan uniapp tidak boleh meminta rangkaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!