極光推送1

這些都出自極光推送的官方文檔上http://docs.jpush.cn/pages/viewpage.action?pageId=3310013

名詞:

1. 別名alias:標識應用程序用戶,一個用戶一個別名,一個別名卻可以指定多個用戶。
2. 標籤tag: 方便把用戶分類,一個標籤可以有多個用戶,一個用戶也可以被打上不同的標籤。就像選課,一門課可以有多個學生,一個學生也可以上多門課,當某一門課開課的時候,可以給上這門課的學生髮送消息。
3.RegistrationID:應用程序在第一次成功註冊到 JPush 服務器時,JPush 服務器會給客戶端返回一個唯一的該設備的標識 - RegistrationID。JPush SDK 會以廣播的形式發送 RegistrationID 到應用程序。反之,應用程序也可以把此 RegistrationID 保存以自己的應用服務器上,然後就可以根據 RegistrationID 來向設備推送消息或者通知。
4. Badge:    badge是iOS用來標記應用程序狀態的一個數字,出現在程序圖標右上角。

相關重要方法說明:

1. setTagsWithAlias(with Callback)  設置用戶的別名和標籤,並返回數據告知設置狀態
+ (void)setTags:(NSSet *)tags alias:(NSString *)alias callbackSelector:(SEL)cbSelector object:(id)theTarget;
參數說明
  • alias
    • nil 此次調用不設置此值。
    • 空字符串 (@"")表示取消之前的設置。
    • 每次調用設置有效的別名,覆蓋之前的設置。
    • 有效的別名組成:字母(區分大小寫)、數字、下劃線、漢字。
    • 限制:alias 命名長度限制爲 40 字節。(判斷長度需採用UTF-8編碼)
  • tags
    • nil 此次調用不設置此值。
    • 空集合([NSSet set])表示取消之前的設置。
    • 每次調用至少設置一個 tag,覆蓋之前的設置,不是新增。
    • 有效的標籤組成:字母(區分大小寫)、數字、下劃線、漢字。
    • 限制:每個 tag 命名長度限制爲 40 字節,最多支持設置 100 個 tag,但總長度不得超過1K字節。(判斷長度需採用UTF-8編碼)
    • 單個設備最多支持設置 100 個 tag。App 全局 tag 數量無限制。
  • callbackSelector
    • nil 此次調用不需要 Callback。
    • 用於回掉返回對應的參數 alias, tags。並返回對應的狀態碼:0爲成功,其他返回碼請參考錯誤碼定義。
    • 回調函數請參考SDK 實現。
  • theTarget
    • 參數值爲實現了callbackSelector的實例對象。
    • nil 此次調用不需要 Callback。
2. setTags--該方法是 setTagsWithAlias (with Callback) 的簡化版本,用於只變更標籤的情況。
+ (void)setTags:(NSSet *)tags callbackSelector:(SEL)cbSelector object:(id)theTarget;
3.setAlias--該方法是 setTagsWithAlias (with Callback) 的簡化版本,用於只變更別名的情況。
+ (void)setAlias:(NSString *)alias callbackSelector:(SEL)cbSelector object:(id)theTarget;
4. filterValidTags--用於過濾出正確可用的 tags。如果總數量超出最大限制則返回最大數量的靠前的可用tags。
使用建議

設置 tags 時,如果其中一個 tag 無效,則整個設置過程失敗。

如果 App 的 tags 會在運行過程中動態設置,並且存在對 JPush SDK tag 規定的無效字符,則有可能一個 tag 無效導致這次調用裏所有的 tags 更新失敗。

這時你可以調用本方法 filterValidTags 來過濾掉無效的 tags,得到有效的 tags,再調用 JPush SDK 的 set tags / alias 方法。

+ (NSSet*)filterValidTags:(NSSet*)tags;

5. setBadge----設置JPush服務器中存儲的badge值
+(BOOL)setBadge:(int)value--value的取值範圍:[0,99999]////////設置badge值,本地仍須調用UIApplication:setApplicationIconBadgeNumber函數
6, resetBadge----清空JPush服務器中存儲的badge值,即[APService resetBadge];

推送注意問題:

1.提示“You've implemented -[<UIApplicationDelegate> application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBackgroundModes in your Info.plist.”

解決:在項目配置的Capabilities菜單的Background Modes菜單中選中“Remote notification”。如果沒有看到選項菜單,需要將Background Modes菜單打到ON狀態。

2.提示“Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed?  or there is no APNs register code? Please refer to JPush docs.”

原因:我的CodeSigning中的Provision Profile沒有選擇正確,原因是我在apple的dev中心修改了配置,但沒有更新到xcode。更新可以在賬戶管理中找到,xcode菜單在Xcode->Preferences->account選項卡,在Apple IDs中找到你得賬號,點擊右下角的view detail按鈕,在彈出的窗口中點擊左下角的刷新按鈕即可刷新最新的Provision Profile。最後在CodeSigning中的Provision Profile中選擇最新的值即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章