• 使用IC框架开发跨平台App的备忘录123


    1,关于图标与启动屏幕

    icon.png 192x192
    splash.png 2208x2208

    将这两个图片放在resources目录下,在终端执行:
    ionic resources --iocn --splash

    2,发布Android版本 

    cordova build --release android -- --ant
    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore ./platforms/android/bin/MainActivity-release-unsigned.apk alias_name
    rm ./fengkong.apk
    /work/apps/android-sdk-macosx/build-tools/22.0.1/zipalign -v 4 ./platforms/android/bin/MainActivity-release-unsigned.apk ./fengkong.apk

    生成签名文件my-release-key.keystore的命令:
    keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

    注:zipalign位于具体的API版本下。
     
    3,发布iOS版本 

    使用xcode打开项目编译、发布。

    4,关于跨域的处理

    使用ionic serve --lab启动调试,可能会遇到跨域的安全问题。
    在server nginx配置文件内添加:

    location / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    proxy_pass http://127.0.0.1:9000;
    }
        启动Chrome:
      open /Applications/Google Chrome.app/ --args --disable-web-security  

     5,Service的写法

    angular.module('starter.services', [])

    .factory('Consts', function() {
    // Might use a resource here that returns a JSON array
    return {
    version: function() {
    //同时修改config,package中的version
                return 3.23;
        }
    };

    });
     
    6,一个$http get请求

    $http.get(url)
        .success(function(data, status, headers,config){
            console.log('data success');
            console.log(data); // object seems fine
        })
        .error(function(data, status, headers,config){
            console.log('data error',data);
        })
        .then(function(result){
        });


    7,确定弹窗

    var confirmPopup = $ionicPopup.confirm({
    title: '提示',
    template: '发现了新版本,单击确定立即前往更新'
    });
    confirmPopup.then(function(res) {
    if(res) {
    if ( ionic.Platform.isIOS() ){
    var iosUpdateUrl = "https://fir.im/37ew";
    window.open(iosUpdateUrl,"_system","");
    }else if( ionic.Platform.isAndroid() ){
    var androidUpdateUrl = "https://fir.im/jca9";
    window.open(androidUpdateUrl,"_system","");
    }
    } else {
    console.log('You are not sure');
    }
    }); 

    8,提示

    $ionicPopup.alert({

    title: '提示',
    template: '未发现新版本'
    });

         
  • 相关阅读:
    e552. 取Applet的参数
    e551. 精简的Applet
    e558. 在Applet中多图片交互显示
    e1087. try/catch语句
    e1086. if/else语句
    e1087. 用For循环做数组的遍历
    e1084. 捕获错误和异常
    Zookeeper 应用程序
    Zookeeper API
    Java并发编程:volatile关键字解析
  • 原文地址:https://www.cnblogs.com/sban/p/4634127.html
Copyright © 2020-2023  润新知