问题一:
昨天与app联调的时候,出现有一个点击事件不能使用 点击后没有任何效果;代码如下:
var popupMsg = "";
$.each(readBookList,function(n,value){
var msgLi="";
msgLi = `<div class="popupClassName" onclick="changeClass(`+ n + `)"><li>`+value.className+`</li></div>`;
popupMsg += msgLi;
})
$('#popupUl').html(popupMsg);
// 点击选择班级 并隐藏弹框
function changeClass(n) {
classIds = readBookList[n].classId
localStorage.setItem("selectName",n)
selectName = n;
$(".popupClassName").eq(n).addClass("isName").siblings().removeClass("isName");
// 请求列表接口 并隐藏弹框
lode(classIds);
score(0,classIds);
// 重置排行榜 默认在班级排名
$(".rankingTab").eq(0).addClass("tab-nav-action").siblings().removeClass("tab-nav-action").addClass("tab-nav");
setTimeout(function(){
$('#selectClass').html(readBookList[n].className);
$(".popup").addClass("noPopup")
},500);
}
刚开始以为是js动态创建的过,又以为是我请求后台接口的过;结果都不是;后面又看setTimeout的过 结果都不是!最后从app的日志里查到点击的时候报错《‘setItem’is null》啥的东西, 于是定位到本地存储 localStorage.setItem(“selectName”,n) 结果把他给屏蔽后,点击事件好了!
真的是一点一点的懵啊!
总结:嵌套在APP中H5界面不兼容本地存储,可以使用延时器。
问题二: H5页面中input调取相机相册功能,ios拍照啥的提示为英文提示;安卓手机点击input 框没响应!
下面是解决办法:
iOS需要在原生文件中设置个东西如下:
如果没有特别要求,那就用系统的文字,需要在info.plist 里面填加一个key表示app 使用系统的语言,key为Localized resources can be mixed 设置为YES 就可以了。
安卓手机:
这次是安卓手机没有允许webview使用相机及相册,也是后台做了处理,处理如下:
问题持续更新中…
最后想咨询一下看到文档的好友们 ,你们写与APP交互的界面的时候使用的什么框架呢?有什么推荐吗?一起学习下
**更新一~~~~~~~~~~~~~~~**~~~~
想必每个程序员看一年前自己的代码都想吐槽,而我不只代码,文档也是如此!首先对看过这篇文章的人说声抱歉!误导了
上面问题一的总结是错误的,H5本地存储可以在安卓机上运行,前提是安卓把这个功能打开(默认安卓是不允许本地存储的)
下面在新增一个问题:
问题三:
在互传函数,互传参数时,一般情况下都是字符串传递,可是如果字符中存在特殊符号就需要处理一下了(比如单引号);此时我们需要和APP协定一种转移方式即可