应用开发常见问题

热门问题:苹果应用上架appstore常见问题汇总

1、安卓开启硬件加速引起部分网页出现闪屏问题

答解决方式

1、在手机上出现闪屏问题时,可以查看对应界面是否包含<img>标签。 如果有可以尝试修改成 <div> 然后对其进行设置背景图片的方式。2、闪屏原因可能是由于登陆窗口所致,解决方案:当登录完成时,将登录窗口关闭,首页闪屏问题解决。

3.对闪屏的单个页面进行关闭硬件加速

4.关闭所有页面的硬件加速:config.xml 添加配置<hardware>false</hardware>,然后根据需要对需要性能的页面开启硬件加速(如列表滑动)。

引擎方法有提供的开启关闭硬件加速的接口你可以作为参考解决方案:

a.设置当前Window是否开启引擎加速: uexWindow.setHardwareEnable(0);//0 关闭,1开启

b.设置popover是否开启硬件加速: uexWindow.setPopHardwareEnable(“content”,0);//第一个参数为popover的name,第二个 0 关闭,1开启

c.uexWindow.open和uexWindow.openPopover 方法 extraInfo添加参数 hardware (0 关闭,1 开启)或设置背景色就可以解决

如:

  1. extraInfo:{
  2. opaque:false,
  3. bgColor: ‘#ffffff’,
  4. delayTime:260,
  5. hardware:0
  6. }
2、 软键盘弹出后覆盖输入框问题

答解决方式

原因1:通过调用的openPopover接口打开的窗口的高度是定值(即具体的数值)。即使是通过以下这种方式:

  1. var s=window.getComputedStyle($$(id),null); int(s.height)

也是一个固定的值,因此会导致该问题。 原因2:应用为全屏模式,全屏模式与软键盘弹出时压缩页面相互冲突,二者不可兼得。

解决方案1:调用openPopover接口时,原本的int(s.height)参数换成空。若出现打开的窗口覆盖footer内容时,在调用openPopover接口增加第11个参数,该参数传入打开的窗口离屏幕底部的距离,即footer的高度$$("footer").offsetHeight。

解决方案2:打包时选择非全屏模式。

其他方案:安卓选择压缩模式打包。

3、使用AppCan开发的应用如何做到升级

答解决方式

AppCan开发的应用升级问题,这个是对一个应用只是开发后的管理工作,在AppCan平台完全可以做到应用版本的维护和升级,详细文档可参考应用管理的推送升级

4、 非全屏,IOS7风格,在IOS7上时间栏为透明色,但是页面与时间栏重合了

答解决方式

在代码中写入add20ToHeader(),具体代码在论坛中搜索技术帖

  1. JS代码:
  2. appcan.ready(function(){
  3. var ios7style=uexWidgetOne.iOS7Style;
  4. var isFullScreen = uexWidgetOne.isFullScreen;
  5. if (ios7style == '1' && isFullScreen != '1') {
  6. $("body").addClass("uh_ios7");
  7. }
  8. })
  9. CSS样式:
  10. .uh_ios7 .uh {
  11. padding: 1em 0 0;
  12. }

js代码是在新版jssdk的appcan.control.js里、、css在ui-base.css里,如果开发者用的不是最新版本,就需要在js里判断一下,处理下代码逻辑

5、 安卓应用装到设备桌面上同时出现2个图标icon

答解决方式

2个icon这个有可能是用户上传自定义插件导致,AndroidManifest里面只能有一个launcher,直接去把插件里AndroidManifest.xml文件这一行 < category android:name="android.intent.category.LAUNCHER">代码删掉,重新上传插件打包

6、怎么监听手机的返回的实体键

答解决方式

只针对安卓,使用uexWindow.onKeyPressed方法

7、采用appcan开发的应用,如果开启了硬件加速,在小米2系列手机上容易闪退的问题

答解决方式

app发生闪退时,通常是由js操作css引起的。解决办法是采用延迟操作的方式。发生闪退的js和css代码:

  1. $("#li3").click(function() {
  2. $("#li3").addClass("tab").siblings().removeClass("tab");
  3. list1.style.display = "none";
  4. list2.style.display = "none";
  5. list3.style.display = "block";
  6. });
  7. .tab{
  8. color:#FF6600;
  9. border-bottom: .2em solid #FF6600;
  10. }

对上面的js代码做如下修改,延迟100ms执行,便可以解决闪退问题。

  1. setTimeout(function() {
  2. $("#li3").addClass("tab").siblings().removeClass("tab");
  3. list1.style.display = "none";
  4. list2.style.display = "none";
  5. list3.style.display = "block";
  6. }, 100);
8、js代码location.reload();实现app页面刷新与跳转有时无法正常使用

答解决方式

有可能是app源码的config.xml加密导致,首先AppCan加密原理是:只对HTML页面、js、css进行多维加密,使HTML页面只可以被AppCan中间件引擎所读取, 引擎对其内实现解密。window.loaction(url)如果只指向一个网络地址是不会乱码的,如果你打开本地的一个文件而且还是加密的文件,其实他已经脱离引擎,必须用必须使用 uexwindow.open 和 popover 才能解密

9、AppCan插件API调用没反应和效果?

答解决方式

如果是在IDE模拟器调用没效果,原因是IDE值集成公共插件中常用的插件功能,模拟器可以模拟uexWindow和一些UI类插件效果,其他像第3方类插件暂未集成建议测试效果如果是真机测试生成的APP没有效果,首先检查apk或ipa包有没有把插件打进去,解压查看plugin.xml(ipa包)info.xml(apk包)文件有没有那个插件,其次在前端代码打下log,重新打包测试有没有支持接口,如果执行没有效果说明插件已经打进去,插件有问题/接口代码是否有误,确定下是不是最新官方插件

10、uexWindow和appcan.window的区别,是否可以混用?

答解决方式

uexWindow是插件底层引擎的东西,appcan.window是对uexWindow的封装建议都用appcan.window,也可以使用uexWindow,具体参考引擎文档

11、AppCan应用页面无法长按复制?

答解决方式

AppCan平台生成的应用,应用页面默认支持文本长按复制的,无法长按复制需要页面前端css属性-webkit-user-select:text; 设置处理。

12、uexInputTextFieldView、uexChatKeyboard使用相关技巧:如何处理键盘或表情框与内容遮盖问题

答解决方式

这个问题处理方式是:在键盘弹出的时候,改变浮动窗口中内容div的高度,可以避免内容被键盘遮挡。对于Android的话,需要通过js来计算进行处理;而对于iOS的需要调用changeWebViewFrame这个接口来处理。 注:获取完整参考demo

13、字体忽大忽小,或者页面不平铺的问题

答解决方式

网页在加载时,字体大小没有根据手机屏幕分辨率自动适应,导致忽大忽小。网页中增加以下标准属性:

  1. <meta name="viewport" content="target-densitydpi=device-dpi,width=device-width, initial-scale=1, user-scalable=no,minimum-scale=1.0, maximum-scale=1.0" />

未解决问题?到开发者社区提问试试吧 !点击提问