zoukankan      html  css  js  c++  java
  • 【转载】APICloud开发小技巧分享

    1.安卓滑动关闭窗口

    在IOS设备上可以通过滑动来关闭win,在安卓默认是不可以。细看下文档其实也很的简单,监听事件里面的swiperight:
    如果一个窗口是先打开win再嵌套frame的打开的方法如下
    apiready = function(){
            api.addEventListener({
                name:'swiperight'
            },function(ret,err){
                api.closeWin({
                        name: 'win窗口name'
                });
            })
    };

    如果是直接用win打开的窗口
    apiready = function(){
            api.addEventListener({
                name:'swiperight'
            },function(ret,err){
                api.closeWin({});
            })
    };


    2.安卓点击两次退出应用
    //两次退出
    var first = null;
    function back(){
        api.addEventListener({
            name: 'keyback'
        }, function(ret, err){
            if (!first) {
                first = new Date().getTime();
                api.toast({
                    msg: '再按一次退出',
                    duration:1500,
                    location: 'bottom'
                });
                setTimeout(function() {
                    first = null;
                }, 1000);
            } else {
                if (new Date().getTime() - first < 1000) {
                    api.closeWidget({
                        silent:true
                    });
                }
            }
        });
    }


    把back方法放在apiready里面就OK了

    3.安全保存你的各种key
    在app中,有时我们会使用到一些第三方的key,如果让这些KEY更安全呢,其实官方也有提高,很多朋友却没有留意
    在res文件夹中新建一个key.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <security>
    <item name="key0" value="value0"/>
    <item name="key1" value="value1"/>
    <item name="key2" value="value2"/>
    <item name="key3" value="value3"/>
    </security>

    然后通过
    api.loadSecureValue({
        key:'key名'
    }, function(ret, err) {
        var value = ret.value;
    });

    来调用。云编译的时候会自动加密的,不过在真机测试的时候是没有用的,需要云编译才可以。在打包的时候可以统一配置下

    4。利用本地文件存储实现秒开和离线浏览
    在api对象里面有两个方法readFile和writeFile,我们可以利用这两个来搞一下,而且还会对图片自动缓存的
    通常我们的列表页数据是json的,我们可以对这个json数据循环下
    function writeFile(json){
        var cacheDir = api.cacheDir;
        for(var i=0;i<json.length;i++) {
            var id = json.id;//你的内容id
            var data = json;//内存数据
            api.writeFile({
                path: cacheDir+'/'+id+'.json',
                data: JSON.stringify(data)
            }, function(ret, err){

            })
        }
    }

    注意要通过JSON.stringify转换下格式,否在在IOS上写入不成功
    然后在打开内容页的时候先看下有没有对应id文件存在
    function readFile(){
        var cacheDir = api.cacheDir;
        api.readFile({
            path: cacheDir+'/'+id+'.json'
        }, function(ret, err){
            if(ret.status){
                var jsonData = JSON.parse(ret.data);
            } else{
                //从服务器读取
            }
        });
    }

    还要注意,再次转换下数据格式



    5.打开页面有闪动?那让他闪的个性点
    很多开发者在开发的时候会遇到页面打开闪动的问题,不管是从服务器读取还是从本地缓存读取都有可能会闪动。既然解决比较麻烦,我们就利用CSS3动画,让他闪的个性点。很简单,给元素ID加个fade效果
    比如你的页面内容全部在<div id="wrap"></div>里面。那么我们就给wrap弄个CSS动画,渐入效果,下面是css代码
    #wrap {-webkit-animation: fadeIn .5s ease both;animation: fadeIn .5s ease both;}
    @-webkit-keyframes fadeIn {
        from { opacity: 0.3; }
        to {  }
    }
    @keyframes fadeIn {
        from { opacity: 0.3; }
        to {  }
    }

    马上去体验下吧。

    6.安卓最小化你的APP
    在安卓开发的时候我们会使用最小化应用,不让其退出,其实官方已经提供了这个api方法,只是可能隐蔽点不容易发现
    api.toLauncher();
    参考文档  http://docs.apicloud.com/%E7%AB%AFAPI/api#70
    7.安卓上巧实现日期加时间的选择
    在使用openPicker时我们知道安卓设备是不支持同时选择日期加时间的,也就是date_time属性。又不想使用插件,也不想选择完日期后在点击按钮选择时间,那么我们将openPicker稍微改一下实现时间+日期的选择
    思路:判断如果是安卓设备,则先openPicker打开时间选择,时间选择完成后在openPicker一下选择日期。
    if(api.systemType=='android'){
        api.openPicker({
            type: 'date',
            title:'选择时间'
        },function(ret,err){
            var year = ret.year;
            var month = ret.month;
            var day = ret.day;
            //这是选择的是日期
            var value1 = year+'-'+month+'-'+day;
            //选择时间
            api.openPicker({
                type: 'time',
                title:'选择时间'
            },function(ret,err){
                var hour = ret.hour;
                var minute = ret.minute;
                //选择的时间
                var value2 = hour+':'+minute;

                //组装一下
                alert(''+value1+' '+value2+'');
            });
        }); 
    }


    8.IDE里面让代码自动换行
    很多小伙伴在问我想让代码自动换行,不想看到长长的水平滚动条,截图来说一下:

    依次打开---窗口---->首选项----->Aptana Studio--->Editors--->选中 Enable word wrap ,点击确定并重启IDE

      原文链接: http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=7152

  • 相关阅读:
    [C4] 前馈神经网络(Feedforward Neural Network)
    [C3] 正则化(Regularization)
    [C2] 逻辑回归(Logistic Regression)
    [C1] 线性回归(Linear Regression)
    Python基础学习
    装饰器
    完全理解Python迭代对象、迭代器、生成器
    django自己搭建的博客
    git学习,哇瑟说实话我想要的
    类继承和多态,子类重写构造函数,多重继承学习
  • 原文地址:https://www.cnblogs.com/wangjinhua/p/6125880.html
Copyright © 2011-2022 走看看