H5页面嵌套在APP中的坑

问题一:
昨天与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协定一种转移方式即可

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值