HybridApp iOS ATS解決方案

2021-09-24 15:33:40 字數 1985 閱讀 8004

//預設開啟ats,設定為no關閉ats,需審核時說明

nsallowsarbitraryloadsformedia : boolean //

nsallowsarbitraryloadsinwebcontent : boolean

//ios10新特性,設定為yes使用uiwebview或,

wkwebview不受ats限制,需審核時說明原因

nsallowslocalnetworking : boolean

//ios10新特性,設定為yes本地網路請求不受ats限制

n***ceptiondomains : dictionary

}} /usr/bin/nscurl --ats-diagnostics --verbose url

命令會模擬ats屬性不同配置場景的連線狀況,可根據輸出內容參考配置。

關於https,大概分兩種型別的證書,一類是ca機構認證的,另一類是自簽名的,比較典型的就是12306**了

1 採用ca機構認證的ssl證書:

info.plist —— 無需改動

** —— js通過https進行請求資料,無需改動**。

2 採用自簽名ssl證書:

info.plist —— 修改如下:

<

key>n***ceptiondomains

key>

<

dict

>

<

key>網域名稱

由於cordova專案的網路請求基本都通過uiwebview的ajax去訪問,而uiwebview的ajax請求不支援客戶端證書驗證,如若需引入證書與服務端校驗需要自定義cordova原生外掛程式支援,故這裡提供兩種方式去實現。

1 基於uiwebview的ajax請求(該方式客戶端並不校驗服務端證書內容):

(b)在js中直接通過ajax請求https即可

2 基於原生nsurlsession的網路請求(需匯入證書,網路請求時會驗證服務端證書是否可信):

(a)匯入nativehttps cordova外掛程式

在config.xml中引用該外掛程式內容:

匯入證書,修改nativehttps.m中的plugininitialize方法,將證書新增到trustedcerarr陣列中

(b)在呼叫ajax的公共js中新增外掛程式方法呼叫原生get/post請求:

(c)在對應頁面呼叫原生方法(get/post一致):

ADB server didn t ACK解決方法

1 首先通過cmd啟動adb服務。這個時候會提示啟動失敗。adb start server 服務啟動失敗的原因有很多,但一般是埠繫結失敗。我們來檢視一下埠繫結資訊。如圖所示,真的是埠繫結出了問題。adb nodaemon server 3 我們來看看哪個服務占用了這個埠。這裡面有2個程序占用了這個埠...

NoSuchMethodError 解決方法

j a.lang.nosuchmethoderror,想必 j a的開發者都遇到過這個報錯吧,這個錯誤基本上都是由jvm 的 全網負責委託機制 全網負責委託機制是啥?引發的問題,本人在此奉上三種解決方案 步驟一 全域性搜尋該方法是否存在,目前idea可以支援該操作,包括source包均能搜到 如果搜...

Invaild TLV record之解決方法

水晶報表版本 9.x 原因 1 安裝包中部分依賴元件缺失 2 登錄檔中缺少關鍵專案 3 報表模板檔案損壞 解決方法1 重新啟動 部分元件註冊或者登錄檔專案修改後沒有立即生效,需要重新啟動才能生效 這種可能性比較小 解決方法2 step1 將ufmanager.dll拷貝到目標機器的c program...