小程式安卓渲染問題

來源:互聯網
上載者:User

標籤:fwrite   個人   bom   加密   pen   lob   app   rem   綜合   

最近在做小程式,在測試的時候遇到一個奇怪的問題,請求的資料無法渲染,資料請求成功了,但是頁面上沒有響應。開發工具上,和蘋果手機上測試是好好的,就安卓出現了問題,還是ios系統厲害些。出了問題,一臉的懵逼,咋辦!搜唄。小程式,就老老實實上百度吧。輸入‘小程式 安卓 渲染’,我去還真有,看樣子是安卓的老毛病。這裡截個圖給大家看看,問題是一樣的。

看到這篇關於小程式綜合社區的問答,估計八九不離十,是這個“\ufeff”的問題,也就是代碼是編碼格式問題,utf8和utf8無bom。這個問題別人是解決了的,那就完全不是問題了,。我也來試試看,在這邊的js也像這樣過濾下,麻蛋,小程式jscore好像不支援str.replace(),直接報錯了,前面這個人感覺有點坑人啊,不說清楚,我就試試在後端拿資料的時候就直接過濾掉“\ufeff”,試了好多次還是不行。調試蠻浪費時間的,大多數時候,懟著問題好長時間都沒有解決的話,我們應該適當的把它放一放。

後來,終於在在小程式綜合社區找到了,可以說的官方的解答:官方的加密資料解密演算法PHP – SDK裡的三個檔案有帶BOM頭,要去除。簡直完美,在這裡我也記錄下終極的解決方案。

 

官方解釋:近日有發現類似問題的都是因為返回的資料是 UTF-8 with BOM(即資料的開頭是一個不可見字元 unicode 65279),Android 平台沒有自動過濾,導致 JSON.parse 失敗。目前需要開發人員自行相容,下個版本 Android 會過濾此字元。

 

附上連結:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=2484

 

將下面的代碼儲存為php檔案,在網站的根目錄下運行即可。

 

if (isset($_GET[‘dir’])){ //config the basedir

$basedir=$_GET[‘dir’];

}else{

$basedir = ‘.’;

}

 

$auto = 1;

 

checkdir($basedir);

 

function checkdir($basedir){

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file != ‘.’ && $file != ‘..’){

if (!is_dir($basedir.”/”.$file)) {

echo “filename

$basedir/$file “.checkBOM(“$basedir/$file”).” <br>”;

}else{

$dirname = $basedir.”/”.$file;

checkdir($dirname);

}

}

}

closedir($dh);

}

}

 

function checkBOM ($filename) {

global $auto;

$contents = file_get_contents($filename);

$charset[1] = substr($contents, 0, 1);

$charset[2] = substr($contents, 1, 1);

$charset[3] = substr($contents, 2, 1);

if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {

if ($auto == 1) {

$rest = substr($contents, 3);

rewrite ($filename, $rest);

return (“<font color=red>BOM found, automatically removed.</font>”);

} else {

return (“<font color=red>BOM found.</font>”);

}

}

else return (“BOM Not Found.”);

}

 

function rewrite ($filename, $data) {

$filenum = fopen($filename, “w”);

flock($filenum, LOCK_EX);

fwrite($filenum, $data);

fclose($filenum);

}

現在看來,問題是小問題;但解決不了就是大問題了,平時還是多看看官方的論壇,社區。

小程式安卓渲染問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.