Rumah  >  Artikel  >  hujung hadapan web  >  pembungkusan awan uniapp tidak boleh meminta rangkaian

pembungkusan awan uniapp tidak boleh meminta rangkaian

WBOY
WBOYasal
2023-05-22 09:14:361409semak imbas

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.

Selesaikan masalah pembungkusan awan uniapp tidak boleh meminta rangkaian

Pilihan 1: Dayakan mod bukan kotak pasir

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.

Pilihan 2: Tambahkan senarai putih rangkaian

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn