工作一年的三兩事(二)

2016年馬上就要過去了,回首在公司的一年中,工作遇到了不少坑,也學到了不少新知識,至少對于我來說是新知識_,特此騰出時間記錄一下,程序員、語死早,一些話表達不清楚只能靠代碼和截圖了,見諒見諒。

本篇博文,分三個篇幅:PHP、Ionic、AngularJs。都是在工作項目中接觸到的,還有nodejs,但是接觸時間比較短,還是先多學學。

二、Ionic

Ionic既是一個CSS框架也是一個Javascript UI庫。許多組件需要Javascript才能產生神奇的效果,盡管通常組件不需要編碼,通過框架擴展可以很容易地使用,比如我們的AngularIonic擴展。
Ionic遵循視圖控制模式,通俗的理解和 Cocoa 觸摸框架相似。在視圖控制模式中,我們將界面的不同部分分為子視圖或包含其他視圖的子視圖控制器。然后視圖控制器“驅動”內部視圖來提供交互和UI功能。一個很好的例子就是標簽欄(Tab Bar)視圖控制器處理點擊標簽欄在一系列可視化面板間切換。

ionic整合極光推送插件

APP一般都需要用到消息推送,公司當初選擇了極光推送,還行,到達率和準確率都不錯,而且免費…

首先是插件安裝

Git地址 https://github.com/jpush/jpush-phonegap-plugin.git
安裝步驟git上都有就不重復說明了(別打臉_)

然后是JS部分的代碼
//極光推送初始化
var _init = function () {
    //啟動極光推送服務
    window.plugins.jPushPlugin.init();
    //調試模式
    window.plugins.jPushPlugin.setDebugMode(true);
    //點擊通知欄觸發
    document.addEventListener("jpush.openNotification", function (event) {
        var alertContent;
        if (device.platform == "Android") {
            alertContent = window.plugins.jPushPlugin.openNotification.alert;
            var data = window.plugins.jPushPlugin.openNotification;
            //業務代碼
        } else {
            alertContent = event.aps.alert;
            //業務代碼
            // alert("openNotification:" + alertContent);
        }
    }, false);
    //應用內觸發
    document.addEventListener("jpush.receiveNotification", function (event) {
        var alertContent;
        if (device.platform == "Android") {
            alertContent = window.plugins.jPushPlugin.receiveNotification.alert;
            var data = window.plugins.jPushPlugin.openNotification;
            //業務代碼
        } else {
            alertContent = event.aps.alert;
            //業務代碼
            // alert("receiveNotification:" + alertContent);
        }
    }, false);
    //應用內消息
    document.addEventListener("jpush.receiveMessage", function (event) {
        var alertContent;
        if (device.platform == "Android") {
            alertContent = window.plugins.jPushPlugin.receiveMessage.message;
        } else {
            alertContent = event.content;
            var confirmPopup = $ionicPopup.confirm({
                title: '您有新的消息',
                template: alertContent, //從服務端獲取更新的內容
                cancelText: '取消',
                okText: '查看'
            });
            confirmPopup.then(function (res) {
                if(res){
                    //業務代碼
                }
            })
        }
        // alert("receiveMessage:" + alertContent);
    }, false);
    //獲取極光推送的id,記得弄個定時器延遲1-2秒獲取,這是個坑
    $timeout(function () {
        window.plugins.jPushPlugin.getRegistrationID(function (id) {
            alert(id);
        });
    }, 4000);
};
//啟動極光推送
_init();

關于統計代碼報錯

如果遇到統計方面的報錯,可以修改插件內的一個文件,據說生產環境不修改也不會有影響,沒有去測試
文件名和參考路徑:

D:\App\platforms\android\src\com\csm\mallappMainActivity.java

修改為(不懂java,捂臉):

package com.csm.mallapp;
import android.os.Bundle;
import org.apache.cordova.*;
//引入
import cn.jpush.android.api.JPushInterface;

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }
    //主要是加上以下代碼
    @Override
    protected void onResume(){
      super.onResume();
      JPushInterface.onResume(this);
    }
    @Override
    protected void onPause(){
      super.onPause();
      JPushInterface.onPause(this);
    }
}

最后分享同時記錄一下關于ionic熱更新

APP上線發布以后,如果www文件夾下的HTML、CSS、JS代碼發生了改變,可以使用cordova-hot-code-push這個插件進行熱更新,不需要重新發布新版本
Git地址 https://github.com/nordnet/cordova-hot-code-push
具體還可以參考以下兩個博文
ionic熱更新插件cordova-hot-code-push的使用
ionic cordova熱更新

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容