AppCan常见问题
AppCan.cn常见问题
新手必看:
Q:什么是Hybrid App?
A:Hybrid App:使用HTML5、CSS3和JavaScript语言编写,通过AppCan IDE提供的本地打包工具或在线编译系统生成可在Android、iOS平台安装运行的本地应用。每一个应用安装后在系统中都能够独立运行,互不干扰。有各自独立的进入点和运行沙盒。
Q:用AppCan平台开发的应用能否用来参赛?
A:用户通过"AppCan.cn"网站开发的移动应用(除特殊注明以外),其知识产权均归开发用户个人所有,用户可以用于包括商业运营、出售、转让等在内的合法用途。
Q:AppCan提供的UI框架、API详细资料在哪里了解?
A:官网文档教程中点击齿轮图标,可看详细资料
Q:如何查看APP源代码?
A:下载好apk或者ipa文件后,将名字后缀改成zip,解压之后就可以看到源代码了
Q:应用后台数据交互怎么实现?
A:使用AppCan中uexXmlHttpMgr这款API可以实现,详细内容见文档
Q:APP KEY在哪里查看?
A:在AppCan官网上,注册帐号并登录,用户可创建一个项目,平台会自动生成一个APP ID和KEY。每个APP都会有自己独一的ID和KEY,查看时登录官网在应用管理中,点击应用名称即可。
Q:IDE开发环境支持mac版的吗?
A:目前不支持xp sp2 及其以下操作系统和Mac OS X操作系统。AppCan IDE基于Eclipse开发,目前只适用于以下Windows系列平台。
Windows XP(32bit)
Windows Vista(32- or 64-bit)
Windows 7(32- or 64-bit)
Windows 8(32- or 64-bit)
Q:AppCan适配哪些设备系统?
A:iOS 4.3以上的系统都已经适配,Android 2.3以上至4.4.2都适配了
Q:怎么本地打包?
A:创建项目后编辑代码,直接在IDE里右键单击android_iphone,点击生成安装包
Q:查看IDE本地生成安装包
A:右键点击桌面IDE快捷方式——属性——打开文件位置——返回上一级AppCanStudioPersonal——Mobile-Applications——查看你的安装包
Q:为什么本地IDE点击生成安装包后没有进度条,也没有生成安装包?
A:该问题可能是java环境导致的,IDE中自带了JDK1.7版本,不兼容JDK低版本。解决办法是把本机的jdk卸载了,重新下载安装最新版IDE,如果还需要开发java,就重装jdk
Q:为什么生成的安装包有测试字样?
A:本地IDE打包会有测试字样,官网在线打包没有此字样
Q:为什么在官网打的ipa安装包只能装在越狱设备?
A:在证书管理界面,如果上传了证书,云端打包在选择证书时就可以选择证书,如果证书管理界面没上传证书,那在云端打包界面选择证书时只有越狱版证书一个选项,只能打越狱版的ipa安装包,此包只能够装在越狱设备上
Q:没有接触过AppCan平台,有没有操作教程?
A:登录官网看文档教程,看看操作录屏:
1.【AppCan 平台概况、UI框架】链接:http://pan.baidu.com/s/1jGkeLLG
提取密码:0bld
2.【API、js扩展】链接:http://pan.baidu.com/s/1o6wO1CI
提取密码:5pn7
3.【插件培训】链接:http://pan.baidu.com/s/1hqfzUrq
提取密码:1ljj
Q:为什么应用安装后不能覆盖上一个?
A:每个APP都有自己独一的ID,ID不同的应用是无法覆盖的,登录官网在应用开发页面对需要覆盖安装的应用进行版本升级即可。注意:如果不使用AppCan提供的证书,iOS以用户上传的IDs作为唯一标识,Andorid以用户自定义包名、Andorid证书为唯一标识。
Q:appcan生成的apk,怎么看包名和签名?
A:签名在apk的META-INF文件夹中的RSA下查看;包名在apk反编译后的AndroidManifest文件下
Q:APP中字体如何设置?
A:通过fontsize设置
Q:如何生成可上传苹果市场的ipa?
A:需要注意以下几点:
1.已经申请了99美元开发者(个人/公司)帐号,并通过此帐号申请了Production发布证书
2.使用3.0在线打包,进行到证书管理界面时,需要在发布证书的位置,上传99帐号发布证书导出的P12文件,以及与P12文件是同一套的描述文件,即distribution.mobileprovision
3.生成的ipa需要修改后缀,改为zip方可上传市场,并且,在上传之前不可以修改zip里的文件
Q:用iOS不同证书生成的ipa包在安装上有什么区别?
A:1.申请Apple99$美元的开发者(个人/公司)账号,在AppCan生成的发布证书ipa,第一种方法:ipa需要调试时,获取到非越狱设备的UDID并绑定Ad Hoc证书,可在非越狱设备安装调试,修改代码后重新打包,上传至市场通过审核后,其他未越狱设备可下载安装;
第二种方法:将ipa用ZIP解压工具解开,新建一个空目录“Payload”,把解压后的目录放入“Payload”中,然后将Payload打包成zip,再修改后缀为ipa,即可在越狱设备安装调试,注意:修改过文件的zip不可以上传苹果市场
2.申请Apple299$美元的企业开发者账号,在AppCan生成的企业证书ipa,无需发布到App Store 上,可在任意ios设备安装
3.在AppCan生成的越狱版ipa,可在越狱设备上安装。
Q:ios7越狱版的为什么不能安装越狱包?
A:ios7越狱版关闭了afc2软件安装服务,安装调试软件不太方便,最好用ios7以下越狱手机开发调试
Q:关于AppCan生成的ipa二维码问题
A:1.AppCan针对使用越狱版证书生成的安装包,扫描二维码可以在越狱手机上安装;
2.AppCan针对使用发布版证书生成安装包,扫描二维码无效:此安装包需要下载到本地使用Apple自带的最新上传工具,上传到App Store审核通过后,通过 App Store 下载安装;
3.AppCan 针对使用企业开发证书生成的安装包,可先下载安装包到本地,检查安装包中是否包含有PayLoad目录,如果包含可以直接安装,如果没有包含,需要手动添加一个Payload目录。
Q:我需要在未越狱设备上调试APP如何操作?
A:1. 将待调试的设备连接到ITunes,成功连接后,找到“标识符(UDID)”字样,将后面的内容复制;
2. 添加Device:登录Apple开发者,选择Certificates, Identifiers & Profiles,切换到Devices页面,点击+号,在Register Device中,Name处输入手机的Name(仅用于方便识别,通常采用如XXX IPhone4s),UDID处粘贴第一步获取到的UDID,输入完毕后保存;
3. 绑定测试使用的Ad Hoc证书:切换到Provisioning Profiles下的Distribution页面,点击+号,点击Distribution下的Ad Hoc单选按钮,选择需要调试的APP ID,到Select devices中,选中刚才添加的Device,下载证书;
4. 打包APP:在AppCan的后台中,选择正式版,并在distribution.mobileprovision处上传上一步下载的证书,生成APP,生成后下载该ipa,将ipa用ZIP解压工具解开,新建一个空目录“Payload”,将解开后的目录放入“Payload”中,然后将Payload打包成zip,再修改后缀为ipa,即可将该ipa通过itunes同步至第一步中设置的未越狱的手机中调试了。
Q:上传应用是不是要用最新版的xcode?
A: 是的,2014年2月1日起Apple要求开发者使用最新的上传工具将应用上传至App Stroe
打包过程遇到问题
Q:IDE打不了包闪退了
A:重新安装最新的IDE,然后打包时检查key, 如果没有,就到官网重新把key复制到配置文件中
Q:2.0的IDE还能用吗?怎么找到2.0平台入口?
A:继续用2.0的方法:1、官网首页右上角切换到旧版;2、dev.appcan.cn/app/你的应用id。 2.0目前不提供创建新项目服务,可以基于已创建项目进行版本升级
Q:如何将2.0的APP导入3.0?
A:登录官网管理中心—导入应用,将2.0应用导入3.0,需要注意,一个APP只能导入一次,且只有应用ID、KEY和widget包能导入,其他都需要重新上传,版本信息不能导入。
Q:将2.0项目ID导入至3.0并重新打包,如何让已安装2.0项目的用户收到升级提示? A:1.在3.0上将导入后的ID重新进行打包
2.将3.0应用的下载地址复制了
3.登录到2.0进入该应用管理面板,点击升级管理—新建版本,在升级地址处,将3.0的下载地址粘帖
4.已经安装2.0项目的用户可收到升级提示,并覆盖安装
Q:3.0的代码同步工具不是BitKinex了?
A:AppCan IDE 3.0中建立项目需要用到SVN同步代码,不是BitKinex了,SVN软件分32-bit和64-bit运行环境,请下载相应的软件版本,新手上传代码可以查看官方文档教程SVN使用说明http://docx.appcan.cn/#!/guide/svn,或者论坛svn上传必看
http://bbs.appcan.cn/forum.php?mod=viewthread&tid=15961
Q:图标设置中上传且保存了却依旧是默认图标?
A:图标上传保存成功要在云端打包成功后,才可在应用管理界面看见icon已经为上传图标
Q:导航条换了图片,在模拟器上可以显示,打包后在真机上显示不出来?
A:因为图片的命名相差太大,点中状态和没点中状态图片的名字要相近,比如a1,a2
Q:以前用2.0在线生成的APP已经发布成功过APP store,用3.0在线打包版本升级,应用ID不变,上传新版本到市场提示This bundle is invalid,The value for key CFBundleVersion(0.0.02) in the Info.plist file must contain a higher version than that of the previously uploaded version[2.2.138.0.0.01] A:这个原因是,之前2.0在线打包APP版本号是引擎版本号加上应用版本号(例如2.2.138.0.0.01),在3.0当中我们取消了在应用版本号前加引擎版本号,版本号就是 00.00.0002。解决办法是,在版本升级时把版本号手动修改为 2.3.0002就好了。
Q:3.0应用版本升级界面在哪里?
A:进入官网在应用管理中,点要升级的应用名称——应用开发——应用打包——填写版本号——升级
Q:IOS7风格打完包时间栏不融入程序
A:选择 非全屏,IOS7风格,在IOS7上时间栏为透明色,IOS6上时间栏是黑底白字
选择全屏时,IOS7风格,在IOS7上是没有时间栏的
Q:非全屏,IOS7风格,在IOS7上时间栏为透明色,但是页面与时间栏重合了
A:在代码中写入add20ToHeader(),具体代码在论坛中搜索技术帖
Q:时间栏字的颜色可以自己修改吗?
A:可以,setStatusBarTitleColor设置时间栏上字体的颜色,详细请查文档。
Q:为什么3.0在线打包的正式版APP,安装在ios7上出现上下黑条?
A:检查一下打包时上传的第三张iphone启动图片,是否按照要求的规格上传,没有按照规格上传会导致分辨率不适配出现黑条
Q:在线打包APP,安装后显示“出错了请稍后再试!”
A:1.检查SVN版本,SVN软件分32-bit和64-bit运行环境,是否下载了对应的版本
2.检查是否成功上传了代码,打包成功了不代表代码传成功了,查看官方文档教程SVN使用说明http://docx.appcan.cn/#!/guide/svn
3.把官网管理中心该APP下的上传地址,复制到浏览器,看目录结构,确保config.xml文件在trunk的根目录下,APP在设备上打开后读取的是trunk根目录下的config.xml文件,注意不是在trunk/android_iphone下,错误的目录结构会报“出错了请稍后再试!”
Q:启动图片是否可以做成动态的?
A:暂不支持
Q:上传了应用图标并保存,为什么在应用管理icon中没有变化?
A:保存后要打包成功才在会应用管理icon中显示已更新图标
Q:一般app图标是png8还是png24格式,四周圆角的半径是多少?
A:一般是png24格式,圆角半径根据icon尺寸而不等,例如上传尺寸为144X144像素,那四周圆角的半径是24px
Q:启动页时间如何设置?
A:不支持设置,启动页时间正常范围是1-3秒,超出时间由设备网络状况与加载资料大小决定
Q:使用UexPay进行支付,对于没有安装无线支付插件的设备没法自动下载,只提示插件不完整,请问如何捆绑安装一个支付插件?
A:想要捆绑安装一个支付插件(捆绑安装只对主widget有效)时,请将支付插件拷贝到wgtRes目录下,并将apk名称赋给pluginNmae字段,详细请看文档教程中uexAPI.uexPay。程序会自动
在支付之前检查支付插件的完整性或者是否有版本更新,如果检查到设备上没有安装支付插件,则会自动将wgtRes目录下的apk安装到设备,否则提示插件不完整。
Q:支付宝可以支付了,但是怎么配置支付成功之后的返回数据?
A:支付宝的回调通知在文档中心uexAPI.uexPay. Parameters中可以查看:商家提供的url。订单支付结束时,支付宝服务端在回调手机客户端的同时,会回调这个url,通知商家本次支付的结果。结果中包含支付结果详情和商家提供给支付宝的公钥信息,商家可用已有的私钥再进行验证此订单是否属于本商家,以保证支付的最大安全。
Q:程序中调用了某个插件方法,但是不起作用
A:再确认一下是否勾选了插件,确认方法:将 ipa下载到本地,改后缀解压,查看plugin.xml文件中是否包含该插件的名字
Q:为什么提示打包失败?
A:请仔细检查项目中,文件夹名或者文件名是否有中文字符。
确认一下您的IDE是否为最新版,在IDE顶部菜单栏找到帮助,下拉菜单中点关于,可见HDT Version:V3 Build id: 20140630-2054,若为旧版请到官网下载最新版
Q:怎么查看自己IDE的版本?
A:在官网下载后,点击帮助后下拉菜单点关于,可见HDT Version:V3 Build id: 20140630-2054
Q:在线打包提示生成失败App IDs not match or compile faild,或者安装后出现两个图标
A:一般是证书和IDs不匹配,Bundle-identifier必须与证书的appIDs一致,请按照流程重建证书
Q:安装包用微信扫一扫为什么无法下载?
A:因为微信对安装包文件做了限制
Q:子应用打成zip包,通过好压,BeyondCompare等第三方工具修改zip包内容后,上传服务供下载,手机端会解压失败
A:已经生成的正式包是不容许再次修改的,负责会导致文件破坏
Q:应用如何删除?应用中的版本如何删除?
A:在官网管理中心内,进入应用管理中可直接删除应用,进入应用开发点击应用名称,可删除当前应用版本
Q:为什么APP中输入框被键盘遮挡了?
A:打包时键盘模式选择压缩模式,输入框就在键盘上方显示了
Q:在线打的apk为什么安装的时候提示“解析包时出现问题”?
A:通常是安装包下载的有问题,或者自定义包名没按照规格填写。自定义包名规格例如:aa.bb.cc,注意:不支持中文、数字及特殊字符。
Q:iOS推送需要准备什么?
A:1、必须在线打包
2、必须有99美元发布证书或299美元企业版证书其中一种证书,并且已经申请推送证书
3、99美元发布证书生成的ipa,测试推送,第一种方法:ipa上传至市场通过审核在未越狱设备安装,第二种方法:将ipa用ZIP解压工具解开,新建一个空目录“Payload”,将解开后的目录放入“Payload”中,然后将Payload打包成zip,再修改后缀为ipa,即可在越狱设备安装,获得推送消息
4、299美元企业版证书生成ipa,可在任意ios设备安装,并获得推送消息
5、云端打包步骤中必须选择发布版证书或者企业版证书,越狱证书无法成功推送消息
开发问题
Q:为什么运行AppCan模拟器时看不到效果?
A:将IDE卸载重新选默认路径安装,HDK目录下HDK\emulator\simulator是AppCan模拟器路径,不要写中文路径,重启并清除浏览器缓存。由于模拟器内核是Chrome内核,建议使用Chrome浏览器,第一次安装使用模拟器需要等待一些时间。以上操作依然存在黑屏请修改项目中host文件,保证有 127.0.0.1 (C:\Windows\System32\drivers\etc\hosts)同时将其注释掉修改成“# 127.0.0.1 localhost”后保存。若电脑安装了百度杀毒之类的软件,浏览器弹出提示框请点击允许,或者关闭此类软件。
Q:怎么调整IDE中编辑器里的字体大小?
A:在IDE菜单栏中,依次点击以下:窗口——首选项——常规——外观(双击)——颜色和字体——文本字体(双击)——选择字体大小——确定
Q:AppCan主页为外部链接怎么修改?
A:在config中修改。打开config文件,把index.html 修改为想要到达的网址
Q:安卓机分辨率多,做出的页面,适用于不同分辨率,如何来做呢?
A:根据屏幕密度,引擎控制1em的大小,css布局时配合弹性盒子模型及em作单位进行适配不同的分辨率。
Q:如何对页面进行加密?
A:请在官网文档教程SDK工具中下载AppCan HTML加密工具EncryptWidget_2.2.0,已做页面加密的程序,需要在config.xml文件false中把false配置为true,启动的第一个页面会被系统自动解析,如果还有其他页面被加密需要在open窗口的时候配置inFlag值为解密方式打开
Q:文件加密后模拟器打开出现乱码?
A:需要真机打开
Q:加密后生产了后缀为.bak的文件,可以删除吗?
A:可以删除
Q:如何将2.0项目中的代码导入到3.0项目?
A:导入项目需要登录官网应用管理处,找到相应的应用ID和应用KEY,通过代码同步工具TortoiseSVN来实现,具体参照文档中代码同步工具SVN使用说明
Q:导入项目时提示没有设定合法的应用key?
A:key是项目的数字ID,请查看这个目录下: C:\AppCan\ADK\emulator\disk\widgetone 是否有:key.xml 文件。
Q:3.0在线打包后,为什么出现字体忽大忽小或者页面不平铺?
A:是由于网页在加载时,字体大小没有根据手机屏幕分辨率自动适配,导致忽大忽小。
网页中增加标准属性即可:,注意该属性的取值当中没有get-target-densitydpi值。
Q:为什么apk的适配出现问题?
A:首先要在网页中加上
Q:安卓手机上滑动不流畅
A:阴影样式会导致这种情况,把box-shadow:inset2px08px#051732;去掉就好了,另外-webkit-box-shadow和box-shadow尽量少用
Q:如何确定手指的位置?
A:getPage(event, 'pageX');
getPage(event, 'pageY');
Q:Android窗口移动后露出来的页面黑屏
A:使用uexWindow.setWindowFrame时打开此页面时flag为256
Q:出现打开的浮动窗口的宽度非屏宽
A:浮动html页去掉width=device-width
Q:浮动窗口打开支持缩放的页面吗?
A:1、uexWindow.openPopover方法打开页面,flag为128
2、把html的“user-scalable=no, minimum-scale=1.0, maximum-scale=1.0”去掉
Q:页面header中有二级菜单栏,在页面切换中莫名丢失
A:原因是在主页面header下加二级菜单,浮动窗口y坐标是$$("header").offsetHeight+$$("header2").offsetHeight,主页面监听到窗口变化重置窗口没有修改y
坐标zy_resize("content",0,$$("header").offsetHeight);
解决办法是,窗口重置的y坐标要与浮动窗口的y坐标保存一致。
Q:如何让顶部header下的阴影,稍微盖住内容的一点,实现模糊的阴影效果且content中翻页时,阴影不消失?
A:可以在content页面里,做一个半透的png~fix在顶部置顶
Q:设备返回显示的数值与网络有关吗?
A:当设备右上角网络为
没有网络时返回connectStatus :-1
wifi网络时返回connectStatus :0
3G网络时返回connectStatus :1
2G网络时返回connectStatus :2
3.5G 、 4G网络时返回connectStatus :3
Q:用AppCan开发的hybrid应用上传到市场了,升级换成其他环境来开发,如何对应用市场已存在的包做版本升级?让用户覆盖安装?
A:安卓只要保证应用包名和签名与已存在市场的应用相同,就可以实现版本升级,使用户覆盖安装。苹果需要保证IDs一致。
Q:上拉加载下拉刷新代码怎么实现?
A:uexWindow.setBounce("1");
uexWindow.notifyBounceEvent("1", "1");
uexWindow.notifyBounceEvent("0", "1");
var s = '{"imagePath":"","textColor":"#aaa","levelText":"","pullToReloadText":"上拉加载更多内容...","releaseToReloadText":"释放加载更多内容...","loadingText":"加载中,请稍等"}';
uexWindow.setBounceParams("1", s);
uexWindow.showBounceView("1", '#EAEAEA', '1');
var b = '{"imagePath":"","textColor":"#aaa","levelText":"","pullToReloadText":"下拉刷新更多内容...","releaseToReloadText":"释放加载更多内容...","loadingText":"刷新中,请稍等"}';
uexWindow.setBounceParams("0", b);
uexWindow.showBounceView("0", '#EAEAEA', '1');
插件问题
Q:调用uexLocation插件获取定位,在ipa中打开百度地图时为什么定位不准确?
A:uexLocation插件在Android中是使用百度地图定位,在iOS中是使用设备系统定位,直接用
设备系统定位获取的经纬度值,打开百度地图是会有差距的,解决办法是使用待转换的经纬度以url参数的形式传递进去,打开的页面是经过了Base64形式的校正经纬度坐标.
Q:上传自定义插件zip包,提示“您填写的插件名称与插件文件夹名称不同!”
A:先确定自己添加的插件英文名称,和上传的插件包名称大小写均一致,再将插件包使用好压或rar工具解压,然后重新压缩上传zip即可
Q:浮动窗口怎么向主窗口发信息?
A:evaluateScript(inWindowName,inType,inScript)
Q:主窗口与浮动窗口的js需要分别引入吗?
A:是需要分别引入的。
Q:开发者如何获取用户自定义的微信分享内容?
A:当用户把内容写到一个名称是abcdefg的输入框里,开发者通过document.getElementById("abcdefg").innerHTML;就能获得用户输入的内容
Q:uexFileMgr.openFile(1,filepath,1) 打不开文件?
A:uexFileMgr.openfile只是打开了一个文件的输入输出流,可以读,写,删除,并不是放图片就用图片浏览器打开,放视频,就用播放器打开
Q:uex.cXmlHttpRequestStatusReceive = 0,什么情况下返回0?
A:ios平台正在接受数据的时候status的状态值会是0
Q:有提供监听app退出的方法吗?统计用户使用app时长
A:可以详细了解文档中uexWidget.onSuspend
Q:图片批量上传如何操作?
A:得到所有上传图片的URL,保存在数组中,然后分隔进行循环上传
Q:插件中怎么加载本地图片资源?
A:图片文件插放在当前件包下面文件夹名字和插件名字一致
UIImage *image = [selfgetImageFromLocalFile:@"uexAppCenterMgr/refresh"];
-(UIImage *)getImageFromLocalFile:(NSString*)imageName{
return[UIImageimageWithContentsOfFile:[[NSBundlemainBundle]
pathForResource:imageNameofType:@"png"]];
}
Q:用什么方法清除离线缓存图片?
A:function zy_clearcache()
{
lstor.clear();
uexFileMgr.deleteFileByPath("wgt://data/icache");
}
Q:如何做本地缓存图片呢?
A:图片下载到本地,用res路径读取到本地图片
网页中不光包含JSON数据,图片、音乐等也是必不可少的元素。一般网页编程下,我们先用getJSON接口获取数据,并转换返回的数据为JSON格式,通过JS代码我们把JSON格式数据转化为网页HTML代码添加到页面里进行显示。而图片常用为标签或者元素的background-image属性。在这种处理机制下,图片是由浏览器负责下载并进行缓存。而在常见移动应用中,图片下载到本地后,由应用负责管理,通过代码逻辑判断是否需要更新,与浏览器的缓存机制并不相同。为了提高应用的执行效率降低与服务器通讯的频率,我们封装了zy_icache.js,通过这个接口文件我们帮助开发者完成图片资源由应用进行管理的功能。
Q:接口:zy_imgcache指定cb函数,即图片下载成功或失败回调函数是怎么写的?
A:zy_imgcache("imageId",1,url,function(obj,path){
//obj 是id为imageId的dom对象。path是下载到本地的图片路径
})
Q:调用zy_imgcache方法缓存图片,在成功的回调函数中找到图片本地下载地址,为什么根据地址在本地找不到图片?
A:wgt://在android上对应了: /widgetone/apps/APPID/ 这个目录。
如缓存的文件是保存在:/widgetone/apps/APPID/data/icache
可以通过 uexFileMgr.getFileRealPath 这个API去取一下
Q:如何读取res://下面的图片
A:NSString *imagePath = @"res://1.png";
imagePath = [EUtilitygetAbsPath:self.eUExNewsList.meBrwViewpath:imagePath];(引擎方法) UIImage *image = [UIImageimageWithContentsOfFile:imagePath];
Q:android,sqlite数据库是不是无法通过程序放进沙箱里啊?只能手动放到一个目录下面
A:AppCan的API完全可以做到通过程序往android(已root过的)和iPhone里放数据库文件,安卓手机必须得root 才有权限
使用adb 命令打开应用程序的目录,查看数据库目录
1.adb shell
2.cd /data/data/org.zywx.wbpalmstar.widgetone.uex/databases
Q:uexWindow.open创建的新窗口,如何传入参数?
A:一般传参数使用localstorage进行
uexWindow.evaluateScript('view',0,'execFun()');这个方法是支持的,这个方法的三个参数都是字符串,所以uexWindow.evaluateScript('view','0','execFun()');
Q:平台开发的APP支持页面缩放吗?
A:在文档中心里找到uexAPI.uexWindow.openPopover,打开浮动窗口支持缩放页面
1、uexWindow.openPopover方法打开页面,flag为128
2、把html的“user-scalable=no, minimum-scale=1.0, maximum-scale=1.0”去掉
Q:如何打开一个网址或者第三方应用?
A:uexWidget.loadApp("","","http://www.baidu.com");
Q:uexWidget.loadApp,启动第三方应用的必须信息,在Android上为第三方应用的action(字符串类型,如:android.intent.action.VIEW);这里的VIEW如何填写?
A:Android.intent.aciton.view是一个整体定义的action,要打开的Activity必须在配置文件中配置这个action。如果需要打开系统的应用,系统应用的这个action都设置好了,就得去文档上查看,这个action的值是什么;
如果要打开其他商家的应用,就要查看商家的action是什么,这里就写什么;
如果是自己的应用,那么就自己随便填写,这里打开的和被打开的得一致,才能打开
Q:uexWidget.loadApp调用第三方程序提示无法找到应用程序名称?
A:有些程序里没有入口调用的声明,所以loadapp会找不到,把他们的程序重编,再用签名工具生成一下应该就可以调用了
Q:为什么在应用内浮动窗口中打开一个网址,安卓界面字体变小了?
A:看看文档uex.cWindowFlagWebApp = 512,标记被open的浮动窗口将用于打开WebApp。uexWindow.openPopover('content','0','http://www.baidu.com','',0,int(y),int(s.width),int(s.height),int(s.fontSize),'512');其中最后一个参数需要改成512,512表示 popover里面 是网页应用
Q:uexVideo.open支持什么格式的视频?
A:uexVideo使用的是Android的mediaPlayer类,Android所支持的视频格式,uexVideo都支持
Q:微信分享插件调用不成功?
A:首先,要确保已经有微信开放平台的app,微信分享、新浪微博分享在其对应平台中申请的appid、包名、签名这三个必须与AppCan项目中的应用信息保持一致
Q:uexWeiXin分享成功没有回调?
A:微信的官方要调用对应包名下的指定文件夹的特定Activity才可以收到来自微信分享的回调,在原生容易实现,在插件还需要技术再研究一下,会尽快出结果
Q:如何监听用户按下设备的返回键、设置键,并给出响应?
A:官网教程中uexAPI.uexWindow下查看setReportKey
Q:沙盒机制是什么?为什么要用这个机制?
A:沙盒机制:应用程序只能在本应用程序中创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒,所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。使用沙盒机制,是为了保证每个应用只能访问自己的文件,保证数据的安全
性。
Q:安装应用之后,在内存卡根目录下的widgetone/apps目录下创建了一个唯一标识数字的目录(这个数字就是创建项目时申请的数字),这个目录就是wgt://相对路径的所在位置吗?
A:基于AppCan平台开发的App,可以包含多个widget, 其中必须有一个root widget。App初始化的时候,会在SD卡中建立管理一个APP管理资源的目录为widgetone。包含两部分,一个是apps,一个是widgets。 apps是里面包含了多个widget目录,每个widget目录根据widgetID来命名,确保唯一性。每个widget目录里面包含了本身的资源目录(video, audio,photo等等),widget下载的文件或者使用的文件保存到这里。每个widget需要访问自己的目录下面的资源文件,就需要使用"wgt://"(这就是沙盒机制,对应到自己目录下面,即 widgetone/apps/widget的自己ID/这个目录)。而widgets这个目录是为了应用中心动态升级子widget所设计的,动态升级的widget可以存放在这个目录下面
Q:为什么安装应用之后并没有在widgetone/apps/唯一数字/res/目录下看到res这个文件
A:“res://”这个schema并不是在这个目录。 是表示widget包下面的wgtRes/这个目录,你需要把db数据库放到这个目录下面,就可以打开了。
Q:新建了这个db数据库在res目录下,日后还能否对这个数据库,进行添加或修改数据的操作? A:只要数据库路径对了,是可以修改的。
Q:管理后台信息推送界面单点用户中sofToken是什么意思?
A:是单个用户设备上当前应用的唯一标识。
插件开发问题
Q:开发android原生插件时,例子里面的callback是不是都要写?
A:只有需要回调给网页值的时候才写
Q:开发android原生插件的时候有用到别人开发的jar包,这个jar包在打包插件的时候要一起打包么?还有个SO的文件也要一起么?在jar文件夹下,要不要包含别人提供的jar包?
A:需要在打包插件的时候一起打包这个jar包,引用第三方jar包时都要打进去,如果用到so文件也要打进去,so和jar是两个文件夹一定要分开。jar文件夹下包含:自己工程类文件的jar包,所有引用到的第三方的jar包(appcan引擎的jar除外),在官网文档中心的开发文档中Android Native插件扩展机制部分有详细资料。