1. <tbody id="y0n05"><nobr id="y0n05"><input id="y0n05"></input></nobr></tbody><strong id="y0n05"><acronym id="y0n05"></acronym></strong>

          1. Android高版本http網絡請求失敗的Cordova配置處理

            小編:管理員 839閱讀 2022.09.13

            參考此文追加說明及處理方案:Android P http網絡請求失敗

            問題出現的原因是因為Android高版本(Android 6.0)以上默認使用TLS保護用戶信息,詳見以下文檔: Transport Layer Security

            摘錄關鍵信息如下:

            Android致力于保證其用戶、設備和數據的安全。我們保證數據安全的一種方式是通過保護所有進入或離開使用TLS技術的Android設備數據。正如我們在Android P開發人員預覽版中所宣布的那樣,我們通過默認阻止Android P應用使用未加密連接通信來進一步提升安全性。 這是我們多年來為保護Android用戶所做的各種更改。為了防止意外的未加密連接,我們在Android Marshmallow(安卓6.0)中引入了android:usesCleartextTraffic 這樣一個manifest屬性。在Android Nougat(安卓7.0)中,我們通過創建網絡安全配置(Network Security Config)功能擴展了該屬性,該功能允許應用程序警告開發者在沒有加密的情況下發送網絡流量。在Android Nougat(安卓7.0)和Oreo(安卓8.0)中,我們仍然允許明文連接。

            簡單地說,在Android高版本對非加密的明文傳輸有要求,也即默認啟用了TLS保護,使得該應用無法進行http網絡請求,而https則不會受影響,同樣地,如果應用嵌套了webview也會受這限制。

            針對這種情況,有以下解決方案:

            1. 使用https。條件允許的話,建議使用,以增強安全性。
            2. Android編譯的targetSdkVersion改為27以下。因為是高版本才出現的,那可以降維處理;
            3. 在AnroidManifest.xml中的application添加設置項:
            4. 添加網絡安全配置。在res的xml目錄下,新建一個network_security_config.xml文件(名稱隨便?。?
            
            
                
            
            復制

            然后在AnroidManifest.xml中的application添加指向該文件的設置項:android:networkSecurityConfig="@xml/network_security_config"

            其中,第1、2種方案都是有條件要求的,而第4種是第3種的擴展使用。對于我們一般使用來說,其實也不需要用到特別的安全策略。

            綜合考量,第3種方案個人認為會好點,Cordova配合其使用也很簡單:

            在config.xml文件中,在節點內添加配置項即可:

            
                        
                    
            復制

            這樣Cordova build的時候就會把上面配置合并到AnroidManifest.xml中。

            關聯標簽:
            国产欧美日韩激情视频一区,久久无码中文字幕无码网站,99久久久成人毛片无码,国产国语脏话对白免费视频,丰满熟女大屁股水多多