您需要登录后才可以操作登录 | 立即注册
关闭
楼主
京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    [新手教程] AppCan 新手入门开发指导全流程 (图文并茂)   [复制链接]

    133339 128 发表于 2014-8-1 10:09:37

    Hi AppCan 源码地址 下载地址
    android&iOS扫描下载:
    u10.png

    AppCan 秀源码地址http://pan.baidu.com/s/1sj2TQgP
    这是下载的解压好的ipa包,官方暂时没有提供安卓的包,如果在安卓手机看效果,自己完全使用这个源代码打一个apk包,PS:这个必须在新版IDE3.1下本地打包才可以,然后再到公共版www.appcan.cn上生成正式的包.....至于为什么强调必须在新版IDE3.1下本地打包,因为3.1 IDE应用的js与3.0 IDE封装的js文件不一样,...


       一到四,全操作步骤,三是svn操作步骤,四是官网线上打包操作步骤,五是在线推送步骤
    一、在线注册用户(即是开发帐号)
    1AppCan 3.0注册帐号(帐号密码记住即是您的开发帐号)--->
    2、点击开发管理,进去之后有个创建应用点击即可创建您的第一个应用了
    截图154.png

    如图 QQ图片20141024140251.jpg

    3、点击创建应用会弹出一个提示框,输入您的应用名称和应用描述(ps:最好不要加特殊字符),
    1.jpg
    点击确定后如下图
    QQ图片20141024140525.jpg
    4、点击上图应用图标或者应用名称:pushdemon,进入到管理面板,里面是您的应用详细信息

    QQ图片20141024162553.jpg
    点击文档按钮 QQ图片20141024162638.jpg 效果如下:
    2.jpg
    推荐
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 12:57:26
    本帖最后由 京京 于 2014-11-6 17:59 编辑

    2)、安卓推送
    操作步骤与ios推送基本一致,(PS:记得选择安卓的选项),只是可以不需要推送证书,直接在官网推即可。

    下面附上的我推送demon源码分享大家可以作为参考:

    push.zip

    130.97 KB, 下载次数: 2494

    推荐
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 12:56:52
    本帖最后由 京京 于 2015-8-28 12:50 编辑

    下面介绍推送步骤:1)、IOS推送非越狱设备
    自己需要去苹果申请证书 包括打包证书和推送证书IOS成功推送的必要条件:必须有99/299美元其中一种证书,并且已经申请推送证书!
    下面截图中两个绿圈内的证书文件,在证书管理界面上传;红圈内的推送证书文件,在此应用打包成功后,信息推送界面中上传),具体参考http://newdocx.appcan.cn/newdocx/docx?type=1297_1291
    47.png
    (一)、返回到在线要推送的应用,点击左上角应用开发,进入到如下图的效果 48.jpg
    点击上图的下载按钮,会出现中间白色的弹出框,可以选择下载或者扫描二维码下载(暂不支持微信二维码) 49.png
    点击安装,安装成功后,返回到应用,如下图 50.jpg
    找到左侧的应用管理,点击应用管理,如下图 51.jpg
    点击上图的信息推送,如下图: 52.jpg
    选择ios选项PSios推送则必须有推送证书,生产环境对应,企业版推送证书(299$);开发环境对应发布版证书(99$,点击上传证书 53.jpg
    会弹出对话框,输入您的证书密码,找到推送证书文件(下图红色圈圈), 54.jpg
    55.jpg
    点击上传确定,则是“生产证书已认证”的状态。 56.jpg
    输入推送内容点击下方的推送按钮,如下图 57.jpg
    58.jpg
    点击确定,用户设备上通知栏会弹出您刚推送的消息,效果如下图 59.png



    推荐
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 10:19:53
    本帖最后由 京京 于 2015-8-28 12:53 编辑

    二、AppCan IDE工具(IDE开发工具操作)
    返回到您在官网下载AppCan IDE工具菜单栏:文件—à新建—àAppCan项目
    image009.jpg
    image010.jpg

    image011.jpg
    点击下一步,如下图,
    image012.jpg

    点击完成,如图左侧是您的应用目录结构,右边即是应用config.xml配置文件内容:应用ID和KEY,版本号,应用名称,起始页等等接下来你就可以在index.html和index_content.html,里编写代码;这俩个页面可以参考官网文档http://newdocx.appcan.cn/newdocx/docx?type=1239_1234
    image013.jpg
    6、编写好代码 点击选中左侧的index.html
    image014.jpg
    选中之后再点击菜单栏上的预览,即可预览你的应用页面效果,如下图
    image015.jpg




    推荐
    赵杰__
  • TA的每日心情
    开心
    2014-9-24 11:57
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    显示全部楼层 发表于 2014-8-2 07:32:27
    本帖最后由 赵杰__ 于 2014-8-2 07:34 编辑

    关于推送有2个问题,
    首先js端的代码是不是只能放在首页里,如果是从一个页面调转到另外一个页面,js代码放到第二个页面里,这样可以吗?
    另外,如果程序关闭了,后台的push服务没有关闭,通知栏可以收到消息,点击后打开程序时还能不能获取到自定义参数 实现跳转?
    板凳
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 10:25:33
    本帖最后由 AppCan运营 于 2015-3-16 18:22 编辑

    三、开始上传代码到AppCan网站服务器(ide操作步骤)
    本地项目开发完毕后,跳转到第一步在官网创建的那个项目里面,获取应用IDkeysvn地址。
    image016.jpg

    IDE中,右键项目名称—>点击“Team —>“共享项目”。(PS:是右键项目名称,)
    7.jpg
    选择“SVN —>“下一步”。
    3.jpg
    选择“创建新的资源库位置” —>“下一步”。
    5.jpg
    复制线上新建项目的svn地址 —>点击“下一步”,“下一步”,“完成”。
    8.jpg
    输入AppCan帐号和密码;点击完成
    QQ图片20141024144720.jpg
    9.jpg
    可以忽略 10.png

    1.png
    导入中….中间需要等待个大约半分钟
    2.png
    导入完成。
    3.png
    4.png
    5.png
    6.png
    导入数据中(上传代码到公众版服务器)
    7.png



    导入成功左侧的问号变成柱形状态
    8.png




    地板
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 11:23:00
    本帖最后由 京京 于 2014-10-24 18:06 编辑

    下面介绍我的旧IDE3.0版本上传代码的习惯方式:android_iphone 文件夹,OK如下图password 即是你在官网上创建的帐号和密码,
    21.jpg
    点击OK,如下图:
    22.jpg
    点击是(Y)效果如下图:文件夹上会默认添加绿色的对号(这是正确的效果)
    23.jpg

    点击OK 然后双击android_iphone 文件夹,
    24.jpg
    进入到其文件夹里面,如下图:
    25.jpg

    右键文件夹空白处,如下图:

    选中TortoieSVN 里面的Add…效果如图
    27.jpg
    点击OK效果如下图:
    28.jpg
    点击OK,然后在文件夹空白处刷新一下,效果如下图:每个文件夹前面都有一个蓝色+
    29.jpg

    这时还得需要进行下一步操作,右键文件夹空白处,效果如下图:
    30.jpg
    点击 SVN Commit…会出现如下图的对话框:
    31.jpg
    点击OK,效果如下图,这时还会出现让你输入输入password,即输入您的appcan注册帐号密码即可
    32.jpg
    点击OK,会出现如下图的效果(每个文件夹前面由蓝色加号变成绿色对号)
    33.jpg
    点击OK,如下图:

    这时代码完全上传到服务器
    5#
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 11:40:19
    本帖最后由 京京 于 2015-8-28 12:57 编辑

    四、回到www.appcan.cn在线打包(官网线上打包操作步骤)
    点击应用开发进去之后点击应用名称前面的图标
    35.jpg
    这里我们点击图标ico如下图:
    36.jpg
    点击左侧的应用打包(因为应用打包只在应用开发里面)如下图: 38.jpg
    1)、上传图标点击上图的+号,开始上传图标,点击保存如下图,保存成功 39.jpg
    2)、点击确定,进行下一步,启动页设置,如下图:
    40.jpg
    上传图片点击保存,点击确定
    3)、进行下一步,点击插件选择(推送可以不用选插件即可实现推送,建议使用哪些插件勾选哪个插件)
    1、必须在线打包
    2、必须有99/299美元其中一种证书,并且已经申请推送证书
    3、99美元证书生成的ipa,测试推送,第一种方法:ipa上传至市场通过审核在未越狱设备安装,第二种方法:将ipa用ZIP解压工具解开,新建一个空目录“Payload”,将解开后的目录放入“Payload”中,然后将Payload打包成zip,再修改后缀为ipa,即可在越狱设备安装,获得推送消息
    4、299美元企业版证书生成ipa,可在任意ios设备安装,并获得推送消息
    5、云端打包步骤中必须选择发布版证书或者企业版证书,越狱证书无法成功推送消息
    41.jpg
    从下面公共插件里选择你使用的插件,勾选插件前面的方框即选上,点击下面的保存按钮,保存选好的插件;
    4)、点击确定进行下一步选择证书管理
    ps:1ios企业证书/发布证书申请与导出,点击 [size=19.09090805053711px]http://newdocx.appcan.cn/newdocx/docx?type=1297_1291
             2、安卓证书的申请与导出(?))
    注意:先上传证书à再输入密码à检验证书(检验证书通过不代表打包成功)èApp IDs 输入框自动获取到证书里的IDsà点击保存不用手动填写;
    检验证书通过不代表打包成功解决办法上传证书这里,请开发者一定注意,App IDs必须与证书中的Bundle ID是一致的,请务必确认!』
    42.png 43.jpg
    选择Android证书,此处应该填写刚才新建的keystore的Alias名字和 keystore名字相应的密码,如下图:
    60.png
    点击保存
    5)、点击确定进行下一步云端打包,如图:
    45.jpg
    勾选androidios前面的方框,安卓自定义包名不要随便写,请看上图红色箭头指的黄se文本介绍;
    选择证书:安卓证书是默认的Appcan证书,自定义包名不能填写;
            安卓证书是自己申请的自定义证书,则需要填写
    自定义包名如下图:择自定义证书,自定义包名填写自己注册审核使用的那个包名,然后点击生成安装包,生成apk即可。
    46.png
    IOS证书看你使用的是自己的还是官网默认越狱版证书,如果是你自己申请的证书,而且你也在第4步证书管理已经上传完毕,选择证书下拉列表会出现您申请的证书,可以选择你的证书;
    (企业版证书:可以直接在越狱机和非越狱机安装。发布版证书:不可以直接在非越狱安装, 必须上传到appstore,才可以安装;但是可以在越狱机安装,操作方法:将ipa用ZIP解压工具解开,新建一个空目录“Payload”,将解开后的目录放入“Payload”中,然后将Payload打包成zip,再修改后缀为ipa,即可在越狱设备安装测试
    输入版本号和版本描述,点击下面的生成安装包…..


    6#
    京京
  • TA的每日心情
    开心
    2016-9-27 09:25
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    显示全部楼层 发表于 2014-8-1 11:45:45
    本帖最后由 京京 于 2015-8-28 12:58 编辑

    五、在线推送(在线推送步骤)推送代码:index.html文件
    1. <!DOCTYPE html>
    2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
    3.     <head>
    4.         <title></title>
    5.         <meta charset="utf-8">
    6.         <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">
    7.             <link rel="stylesheet" href="css/ui-box.css">
    8.         <link rel="stylesheet" href="css/ui-base.css">
    9.                 <link rel="stylesheet" href="css/project/style.css">
    10.                 <link rel="stylesheet" href="index/css/main.css">
    11.                 <script src="js/zy_control.js"></script>
    12.         <script src="js/zy_click.js"></script>
    13.     </head>
    14.     <body class="um-vp c-bf" ontouchstart>
    15.         <div id="page_0" class="up ub ub-ver" tabindex="0">
    16.             <!--header开始-->
    17.             <div id="header" class="uh t-wh ub c-blu">
    18.                     <div class="umw4 ub ub-ac ub-pc" ontouchstart="zy_touch('btn-act')" onclick="">
    19.                             <!--插入按钮控件-->
    20.                     </div>
    21.                 <h1 class="ut ub-f1 ulev-3 ut-s tx-c" tabindex="0">AppCan</h1>
    22.                                 <div class="umw4 ub ub-ac ub-pc" ontouchstart="zy_touch('btn-act')" onclick="">
    23.                             <!--插入按钮控件-->
    24.                                 </div>
    25.             </div>
    26.             <!--header结束--><!--content开始-->
    27.             <div id="content" class="ub-f1 tx-l appCan ub-img4">
    28.             
    29.             </div>
    30.             <!--content结束-->
    31.                         <!--footer-->
    32.                         <div id="footer" class="uinn-z1">
    33.                                 <div class="tx-c t-93 ulev0 ufm1">www.appcan.cn</div>
    34.                                 <div class="tx-c t-93 ulev-4 umar-at1">正益无线(北京)科技有限公司</div>
    35.                         </div>
    36.         </div>
    37.     </body>
    38.     <script>
    39.             zy_init();
    40.         window.uexOnload = function(type){
    41.             if (!type) {
    42.                 zy_con("content", "index_content.html", 0, $("header").offsetHeight);
    43.                                 //当有推送消息来的时候,打开这个页面时会调用setPushFun方法
    44.                     uexWidget.setPushNotifyCallback("setPushFun");
    45.             }
    46.                         
    47.                         window.onorientationchange=window.onresize=function()
    48.                         {
    49.                                 zy_resize("content",0,$("header").offsetHeight);                                
    50.                         }
    51.                         uexWidget.setPushInfo("","");//绑定推送用户
    52.         }
    53.                   function setPushFun(){
    54.                 uexWidget.cbGetPushInfo=function(opId,dataType,data){
    55.                     //推送消息格式为:
    56.                    //{"aps":{"alert":"你收到推送.","badge":1,"sound":"sound.wav","userInfo”:"接到的参数"}}
    57.                     console.log("推送消息为:"+data);
    58.                 }
    59.                 uexWidget.getPushInfo();
    60.             }
    61.                  
    62.     </script>
    63. </html>
    复制代码
    上面是纯粹的推送测试代码,
    下面是测试推送回调,使用自定义参数推送的代码:也是写在index.html文件里的
    1. <!DOCTYPE html>
    2. <html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
    3.     <head>
    4.         <title></title>
    5.         <meta charset="utf-8">
    6.         <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">
    7.             <link rel="stylesheet" href="css/ui-box.css">
    8.         <link rel="stylesheet" href="css/ui-base.css">
    9.                 <link rel="stylesheet" href="css/project/style.css">
    10.                 <link rel="stylesheet" href="index/css/main.css">
    11.                 <script src="js/zy_control.js"></script>
    12.         <script src="js/zy_click.js"></script>
    13.     </head>
    14.     <body class="um-vp c-bf" ontouchstart>
    15.         <div id="page_0" class="up ub ub-ver" tabindex="0">
    16.             <!--header开始-->
    17.             <div id="header" class="uh t-wh ub c-blu">
    18.                     <div class="umw4 ub ub-ac ub-pc" ontouchstart="zy_touch('btn-act')" onclick="">
    19.                             <!--插入按钮控件-->
    20.                     </div>
    21.                 <h1 class="ut ub-f1 ulev-3 ut-s tx-c" tabindex="0">AppCan</h1>
    22.                                 <div class="umw4 ub ub-ac ub-pc" ontouchstart="zy_touch('btn-act')" onclick="">
    23.                             <!--插入按钮控件-->
    24.                                 </div>
    25.             </div>
    26.             <!--header结束--><!--content开始-->
    27.             <div id="content" class="ub-f1 tx-l appCan ub-img4">
    28.                
    29.             </div>
    30.             <!--content结束-->
    31.                         <!--footer-->
    32.                         <div id="footer" class="uinn-z1">
    33.                                 <div class="tx-c t-93 ulev0 ufm1">www.appcan.cn</div>
    34.                                 <div class="tx-c t-93 ulev-4 umar-at1">正益无线(北京)科技有限公司</div>
    35.                         </div>
    36.         </div>
    37.     </body>
    38.     <script>
    39.             zy_init();
    40.         
    41. window.uexOnload = function(type){
    42.         if (!type) {
    43.                 //注册获取硬件信息回调函数
    44.                 uexDevice.cbGetInfo = function(opCode, dataType, data){
    45.                         //注册应用运行中Push事件通知函数
    46.                         uexWidget.setPushNotifyCallback("cbNotify");
    47.                         //绑定当前用户信息到AppCan推送服务器
    48.                           setdeviceToken();
    49.                         //注册获取Push消息内容的回调函数
    50.                         uexWidget.cbGetPushInfo = function(opCode, dataType, data){
    51.                                 if (data != 'null') pushOpen(data);
    52.                         }
    53.                         //获取应用由Push激活时的Push消息内容
    54.                         uexWidget.getPushInfo();
    55.                 }
    56.                 //获取当前应用的DeviceToken
    57.                 uexDevice.getInfo('11');
    58.                
    59.                 zy_con("content", "index_content.html", 0, $("header").offsetHeight);
    60.         }
    61.         window.onorientationchange = window.onresize = function(){
    62.                 zy_resize("content",0,$("header").offsetHeight);                                
    63.         }
    64. }

    65. //推送
    66. function setdeviceToken(){
    67.         //绑定用户UID和用户昵称到AppCan后台服务器
    68.          uexWidget.setPushInfo("","");
    69. }

    70. function cbNotify(){
    71.         //当运行时收到Push消息后,获取Push消息内容
    72.         uexWidget.getPushInfo();
    73. }

    74. function pushOpen(str){
    75.         //PUSH格式:{"news":"123456"} 对应推送后台自定义参数的 键-->值
    76.         var json = eval("["+str+"]");
    77.         if (json.length==1){
    78.         if (json[0]['news']){uexWindow.open('newsView', '0', 'newsview.html?id='+json[0]['news'], '5', '', '', 0x0);return;}
    79.         if (json[0]['house']){uexWindow.open('newHouseView', '0', 'newhouseview.html?id='+json[0]['house'], '5', '', '', 0x0);return;}
    80.         if (json[0]['bbs']){uexWindow.open('bbsView', '0', 'bbsview.html?id='+json[0]['bbs'], '5', '', '', 0x0);return;}
    81.         }
    82. }

    83.     </script>
    84. </html>
    复制代码
    PS:如果您在进行安卓推送的过程中,如果你用uexWidget.setPushNotifyCallback("cbNotify");这个方法,
    温馨提示:

    当用户在应用开启的同时,当你推送消息到用户设备时,会发现应用自动进行回调跳转,会影响用户体验(如果应用打开或者退出状态都取不到推送的消息。只有后台运行才可以正常接收到推送的消息。
    注明:应用打开状态,推送收到的消息直接回调网页了,不在通知栏提示。当应用处于后台的时候接收到的消息在通知栏显示。

    ),解决办法详见安卓引擎更新


    在调试上面的代码时,需要注意,如下图:
    61.jpg

    返回到推送界面:使用自定义参数,填入key值和value值
    62.jpg

    点击推送,
    用户设备上会出现推送消息
    63.jpg

    点击那个推送消息
    页面就跳转到newsview.html这个界面了
    如图
    64.jpg


    PS:推送可以不用选插件即可实现推送『建议:使用哪些插件勾选哪个插件』
    1、必须在线打包
    2、必须有99/299美元其中一种证书,并且已经申请推送证书
    3、99美元证书生成的ipa,测试推送,
    第一种方法:ipa上传至市场通过审核,可以在未越狱设备安装,
    第二种方法:将ipa用ZIP解压工具解开,新建一个空目录“Payload”,将解开后的目录放入“Payload”中,然后将Payload打包成zip,再修改后缀为ipa,即可在越狱设备安装测试(注意此测试不能在非越狱机上测试),获得推送消息。
    4、299美元企业版证书生成ipa,可在任意ios设备安装,并获得推送消息
    5、云端打包步骤中必须选择发布版证书或者企业版证书,越狱证书无法成功推送消息

    推送的关键一是、插件要记得选上以防万一,(把用到的插件选上,不要瞎选)
                               二是、在线打包在线推送
                                      三是、有推送代码
                                      四是、用户装上应用,官网上必须有上报的用户softtoken俩句关键代码
    1.            //注册获取硬件信息回调函数
    2.                 uexDevice.cbGetInfo = function(opCode, dataType, data){
    3.                         //注册应用运行中Push事件通知函数
    4.                         uexWidget.setPushNotifyCallback("cbNotify");
    5.                         //绑定当前用户信息到AppCan推送服务器
    6.                         setdeviceToken();
    7.                         //注册获取Push消息内容的回调函数
    8.                         uexWidget.cbGetPushInfo = function(opCode, dataType, data){
    9.                                 if (data != 'null') pushOpen(data);alert(dataType);
    10.                         }
    11.                         //获取应用由Push激活时的Push消息内容
    12.                         uexWidget.getPushInfo();
    13.                 }
    14. function  setdeviceToken() {
    15.         //绑定用户UID和用户昵称到AppCan后台服务器
    16.          uexWidget.setPushInfo("11","无法显示");
    17. }
    复制代码
    如图: QQ图片20140821133015.jpg
    用户id= 11是下述代码中绑定的uid,写上这个可以把用户缩小到一定范围
    1. uexWidget.setPushInfo("11","无法显示");
    复制代码
    softToken是用户装上应用后上报到推送服务器上的信息,只要有这个,就能完成推送的90%的工作,或者说推送服务器ok,也能达到100%推送。

    温馨警告:你只要没有这个信息推送免谈
    你需要 好好研究帖子,自己练练手吧!!!!!!!!!!!!!!!!






    10#
    flashboy
  • TA的每日心情
    开心
    2014-11-3 10:13
  • 签到天数: 28 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    显示全部楼层 发表于 2014-8-2 07:37:24
    楼主辛苦了,写了这么多。

    我现在还在开发阶段,想请问下楼主,IOS开发证书申请下来要多长时间啊?容易申请吗?
    Android证书要怎么申请?
    主题:
    级别:游客
    发帖:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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