起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8259|回复: 7

[分享] WeX5 V3.2.1版本开发心得与总结

  [复制链接]

8

主题

38

帖子

243

积分

中级会员

Rank: 3Rank: 3

积分
243
QQ
发表于 2015-11-24 20:42:39 | 显示全部楼层 |阅读模式
本帖最后由 caison 于 2015-11-24 20:42 编辑

首先,非常感谢起步软件提供一个这么方便的跨平台移动开发工具。我是从web开发转到webapp开发的。WeX5非常容易入门,提供了大量的视频,但是帮助文档不是很齐全,特别是各类插件使用接口的参数说明。
这边要顺便说下,个人对国内开源框架或工具的一些看法,国内大部分提供傻瓜式的视频教学,个人觉得入门容易了,但是深入反而很难,而且因为视频是针对某一个版本录制的,版本一旦更新就存在很大的差异性,制作团队肯定没那么多精力再去重新录制视频。所以,我个人还是建议少弄视频,多些文档,文档方便修改,版本更新只需少量修改,就可以跟最新版本的软件对应,避免初学者走太多弯路。
现在说说,我学习和使用WeX5完成我的第一个跨平台App的一些心得和总结。
我的App需要使用以下几个插件功能:
1、启动界面延时隐藏,解决启动界面过度到首页会有闪屏的问题。
2、位置定位,获取省市区县,目前很多互联网App都需要定位功能,而且需要定位到具体的区县,便于提供上门服务。
3、拍照,调用摄像头或浏览本地相册。
4、支付宝支付。
5、微信支付、微信分享。

插件一:启动界面。
如果首页加载的东西不多,或者加载的资源都是本地的,那么只需在deviceready事件监听中,简单的调用以下代码:
setTimeout(function() {navigator.splashscreen.hide();}, 1000);
平台默认超时时间为10s

如果首页加载的东西比较多,或者首页数据是从后台动态获取的,那么建议增加引导图,即在index页面加入引导图,由用户点击引导图,然后延时隐藏引导图,为index页面提供渲染时间。

插件二:GPS定位。
如果不需要定位到省市区县,直接使用插件功能即可:
navigator.geolocation.getCurrentPosition(success, fail);
如果需要定位到省市区县,可以结合百度地图提供的逆地址api接口,根据定位插件获取的gps信息,调用百度提供的js版api即可获取。
需要在网页中引入js版的api,具体可以去查阅百度地图api的资料。http://developer.baidu.com/map/i ... pular/guide/service

插件三:拍照。
我采用base64的编码传回字符串,然后通过ajax请求保存到服务器,数据库采用clob字段。
navigator.camera.getPicture(onSuccess, onFail, {
                quality : 50,
                destinationType : navigator.camera.DestinationType.DATA_URL,
                targetWidth : 120,
                targetHeight : 120,
                sourceType : type  // 0 为从相册选取,1为拍照
        });

插件四:支付宝支付。
这个插件问题比较多,初学者先按教程中的参数进行开发测试 http://doc.wex5.com/?p=5046
注意包名、签名、商户id、私钥、公钥等要一致。
我开发过程中主要遇到2个问题,
问题1:私钥没有进行转码,因为我后台是用java。如何转码参考支付宝的帮助文档。
问题2:由于出于测试,新申请的支付宝商户,没有开发后台的通知回调接口。用平台提供的示例是不需要配置可访问的回调地址,但是新申请的支付宝商户,好像必须要有正确的回调地址,才能确定新申请的支付宝商户是激活的。(可能是支付宝第一次验证需要,后续就没有强制了)。

插件五:微信支付与分享。
这个插件问题最多,论坛也有很多给出解决办法,但很多帖子都没说清楚,可能版本不一致吧。
问题1:微信分享,在安卓手机没有反应,在iOS可以正常分享。
解决办法:微信的开发平台和支付平台都不够成熟,申请流程很麻烦,接口调用过程也很麻烦,导致开发者很容易弄错。
第一步:检查你的appid、key、商户id等信息是否正确无误,微信分享只需要用到appid。
第二步:检查你的apk签名,在微信开放平台下载apk签名查看器,我们在编译apk的时候,可能会重新编译签名,签名如果不对,安卓apk是无法调用微信界面的。微信开放平台修改签名,有时候修改后保存并没有成功,修改保存后最好留意下,微信这个bug太坑爹了。
这个问题基本上是由于第二步的原因导致的。apk签名工具下载地址:https://open.weixin.qq.com/cgi-b ... ken=&lang=zh_CN
问题2:微信支付,在安卓手机可正常支付,在iOS没有反应。
第一步:检查微信开放平台对应app的相关参数,主要是ios的包名是否与ios证书的包名一直。
第二步:检查微信支付平台,是否设置了apikey,我默认是把apikey设置为微信开放平台的AppSecret。
第三步:检查js调用接口的参数,这里有个小bug,同样的代码在安卓可用,在iOS不可用,就是参数totalFee,必须为字符串。因为微信支付以分为单位,我开发的时候用数字类型,便于转换成单位元,没想到这个问题导致iOS无法进行微信支付。查阅了论坛各种神贴,都没有解决。最后只好一行一行代码去比对,平台提供的外卖的示例,才发现就是totalFee参数的类型不同,其他都相同,果断把外卖的totalFee参数换成数字,果然也不行了。
解决这个问题得过程中,还试过用iOS的发布模式,越狱手机,搞了大半天,压根跟发布模式没有任何毛关系。
所以,大家如果遇到问题,我觉得肯定跟发布模式没有勾选没有任何关系。别为了发布模式,去折腾手机越狱。

关于真机调试的心得与总结
官方给出了如何安装ipa安装包的方法,我觉得都是非常麻烦。我所有方法都试了,采用github获取https下载地址的方式是可行的,但是也是很麻烦,需要提供外网服务器的ipa下载地址。我这里给出一种最简单的方法,不需要任何条件:下载iToos工具,双击ipa文件,即可安装。

评分

参与人数 2威望 +59 收起 理由
Masion + 9 赞一个!
X5联盟帮扶部 + 50 赞一个!

查看全部评分

QQ:165489883

62

主题

363

帖子

1184

积分

金牌会员

Rank: 6Rank: 6

积分
1184
QQ
发表于 2015-11-25 09:03:42 | 显示全部楼层
写的非常好,楼主真是有心人
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
发表于 2015-11-30 14:22:28 | 显示全部楼层
牛B闪闪的帖子
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

8

主题

15

帖子

63

积分

初级会员

Rank: 2

积分
63
QQ
发表于 2016-8-28 23:01:06 | 显示全部楼层
您好可以帮助我解决下支付宝支付吗?QQ34997232详细聊,可付费
回复 支持 反对

使用道具 举报

13

主题

52

帖子

154

积分

初级会员

Rank: 2

积分
154
QQ
发表于 2016-10-25 14:57:48 | 显示全部楼层
收藏
回复

使用道具 举报

8

主题

38

帖子

243

积分

中级会员

Rank: 3Rank: 3

积分
243
QQ
 楼主| 发表于 2017-1-12 02:06:25 | 显示全部楼层
shiyijin 发表于 2016-8-28 23:01
您好可以帮助我解决下支付宝支付吗?QQ34997232详细聊,可付费

不好意思,去年到现在都没再用wex5也就没再来论坛逛,最近又有项目需要,回来看自己写的帖子,才看到你的留言,sorry
QQ:165489883
回复 支持 反对

使用道具 举报

2

主题

5

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
发表于 2017-11-28 13:37:57 | 显示全部楼层
如果是H5版的能否进行定位?
回复 支持 反对

使用道具 举报

73

主题

292

帖子

1410

积分

金牌会员

Rank: 6Rank: 6

积分
1410
QQ
发表于 2018-2-5 18:22:58 来自手机 | 显示全部楼层
mark
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 13:18 , Processed in 0.063053 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表