在用戶端中嵌入一個 WebView 來引用網頁非常常見。目前項目沒有使用 phonegap,而是自己寫了個 iframe 傳遞參數(原理與 phonegap 類似)。
如下代碼,iOS5-7 是可以正常調用
但是更新到 iOS8 之後,卻忽然打不開了。Obj-C 層并沒有攔截這個 bar:// 請求。
後來經過排查,是 bar:// 這段 URI 沒有 URL 編碼的緣故。解決辦法是 encodeURIComponent JSON 參數即可,還可以保證 中文 的傳輸。
如下例子。
估計是 Apple 方面為了堵住什麼安全漏洞是以要求 URL 編碼的。