小程序安卓渲染问题

最近在做微信小程序,在测试的时候遇到一个奇怪的问题,请求的数据无法渲染,数据请求成功了,但是页面上没有响应。微信开发工具上,和苹果手机上测试是好好的,就安卓出现了问题,还是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);

}

现在看来,问题是小问题;但解决不了就是大问题了,平时还是多看看官方的论坛,社区。

时间: 2024-10-22 02:33:32

小程序安卓渲染问题的相关文章

微信小程序视图层WXML_小程序条件渲染

微信小程序视图层WXML_小程序条件渲染 wx:if 在微信小程序的框架中,我们用wx:if="{{condition}}"来判断微信小程序页面是否需要渲染该代码块: <view wx:if="{{condition}}"> True </view> 也可以用wx:elif和wx:else来添加一个else块: <view wx:if="{{length > 5}}"> 1 </view> &

浅谈高大上的微信小程序中渲染html内容—技术分享

大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 解决方案 wxParse 小程序刚上线那会儿,是无法直接渲染HTML内容的,于是就诞生了一个叫做「 wxParse 」的库.它的原理就是把HTML代码解析成树结构的数据,再通过小程序的模板把该数据渲染出来. rich-text 前端精品教程:百度网盘下载 后来,小程序增加了「rich-text」组件用于展示富文本内

微信小程序安卓机使用uploadfile提示undefined错误原因

前几天开发小程序,在使用微信的uploadfile接口上传图片时,调试工具以及ios的手机无论是拍照,还是选择手机中的图片都可以正常上传图片,而安卓手机在上传图片时,微信总是返回error,且错误提示是undefined(微信返回,数据还没有上传到服务器) 于是网上找资料,找前辈问,未果,总是时好时坏也找不到原因后来,偶然发现,同时上传的字段,如果填写数字,则可以成功提交,如果填写中文则会报错. 于是想到,是不是编码问题,抱着试一试的心态,让前端在上传数据之前加个encodeURI,然后我解析的

原生微信小程序数据渲染

一直在写vue,第一次接触微信小程序,还是原生,最开始做的时候真的很闹心啊啊啊啊啊啊啊啊啊啊啊啊!!所以最近大概更新的都是微信小程序原生的内容了~~么么哒!!一定会继续努力的!!tips:在小程序项目中,app.json文件里的 { //页面配置路径 "pages":[ "page/index/index", //默认首页 "page/index/logs", ] } 正题:微信小程序原生数据渲染条件渲染:wx:if wx:elif wx:els

微信小程序页面渲染

条件渲染:wx:if, wx:elif, wx:else <view wx:if="{{list.length > 5}}" >1</view> <view wx:elif="{{list.length > 2}}">2</view> <view wx:else>3</view> 由于wx:if是一个控制属性,需要将它添加到一个标签上,如果要一次性判断多个组件标签,可以使用<b

微信小程序安卓固定弹窗中textarea的placeholder会被弹出去

在项目中碰到一个问题,就是安卓机上,如果fix固定一个弹窗,这个弹窗中有textarea的话, 点击弹出弹窗,textarea获得焦点的时候,placeholder和value会被弹出到背景上.如图: 弹窗wxml代码: 1 <view class="common-modal" wx:if="{{!actionSheetHidden}}"> 2 <view class="app_container "> 3 4 <v

小程序~列表渲染~key

如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 <input/> 中的输入内容, <switch/> 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符. wx:key 的值以两种形式提供: 1.字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变. 2.保留关键字 this 代表在 for 循环中的 it

微信小程序--条件渲染-Demo

<!-- helloworld.wxml --> <view>今天吃什么?</view> <view wx:if="{{condition===1}}"> 饺子 </view> <view wx:elif="{{condition===2}}"> 米饭 </view> <view wx:else> 面食 </view> <!-- helloworld.j

官方问答--微信小程序常见FAQ (17.8.21-17.8.27)

给提问的开发者的建议:提问之前先查询 文档.通过社区右上角搜索搜索已经存在的问题. 写一个简明扼要的标题,并且正文描述清楚你的问题. 提交 BUG:需要带上基础库版本号,设备信息(iOS, Android,开发工具等等),操作系统信息(系统版本),以及可以让他人重现的信息,最好能够提供重现 demo. 对于提供信息过少的问题,会直接关闭,请提供完整信息以后重新打开问题.另外,对于如何做某某功能,可否做某某功能的问题,会直接关闭. 微信小程序常见FAQ(17.8.21-17.8.27) Q:1.5