❶ android 友盟推送 3.06配置清單怎麼配置
總體來說,友盟裡面的東西還是不錯的,這段時間,一直在用友盟,感觸最深的就是 做分享的時候,有的Android機型是不可以的分享的,直接報錯,我用的是友盟的4.3 有一部手機是Android5.0的 當分享sina時 報錯 找了各種資料 最後改動了一個文件類,同事幫忙解決了 ( ^_^ ) 有一個華為手機 分享QQ空間 直接手機無響應,這是個別的手機,方正Android機型太多了 太多奇葩了 有的人可能會說用ShareSDK 我感覺不錯用哪個第三方 ,遇到問題了都要解決的 我們做這個項目之前用過推送和更新版本,所以直接用了友盟分享,總之 還是不錯的。
配置友盟許可權和方法
[html] view plain print?
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- Permission for Unit Test -->
<uses-permission android:name="android.permission.GET_TASKS"
❷ android 友盟消息推送 如何保活
其實這個很簡單,第三方推送一般都會用「長連護保」功能來保證消息的到達,以下是該平台推送對長連護保的解釋:長連互保,用戶設備中任何一個集成過友盟推送的app打開,即使他的app沒打開也能啟動push service,收到推送。❸ android 友盟推送 未讀消息怎麼做
JPush SDK 收到推送,通過廣播的方式,轉發給開發者App,這樣開發者就可以靈活地進行處理。 這個動作不是必須的。用戶有需要才定義 Receiver 類來處理 SDK過來的廣播。 如果不做這個動作,即不寫自定義 Receiver,也不在 AndroidManifest.xml 里配置這個 Receiver,則默認的行為是: 接收到推送的自定義消息,則沒有被處理 可以正常收到通知,用戶點擊打開應用主界面 接受廣播 如果全部類型的廣播都接收,則需要在 AndroidManifest.xml 里添加如下的配置信息: <receiver android:name="Your Receiver" android:enabled="true"> <intent-filter> <action android:name="cn.jpush.android.intent.REGISTRATION" /> <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <category android:name="You package Name" /> </intent-filter> </receiver> 每個 Receiver action 詳細解釋如下。 Action - cn.jpush.android.intent.REGISTRATION SDK 向 JPush Server 注冊所得到的注冊 ID 。 一般來說,可不處理此廣播信息。 要深入地集成極光推送,開發者想要自己保存App用戶與JPush 用戶關系時,則接受此廣播,取得 Registration ID 並保存與App uid 的關繫到開發者自己的應用伺服器上。 使用極光推送提供的別名與標簽功能,是更加簡單輕便的綁定App用戶與JPush用戶的方式,請參考文檔:別名與標簽使用教程。 Intent 參數 JPushInterface.EXTRA_REGISTRATION_ID SDK 向 JPush Server 注冊所得到的注冊 全局唯一的 ID ,可以通過此 ID 向對應的客戶端發送消息和通知。 Bundle bundle = intent.getExtras(); String title = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID); Action - cn.jpush.android.intent.MESSAGE_RECEIVED 收到了自定義消息 Push 。 SDK 對自定義消息,只是傳遞,不會有任何界面上的展示。 如果開發者想推送自定義消息 Push,則需要在 AndroidManifest.xml 里配置此 Receiver action,並且在自己寫的 BroadcastReceiver 里接收處理。 Intent 參數 JPushInterface.EXTRA_TITLE 保存伺服器推送下來的消息的標題。 對應 API 消息內容的 title 欄位。 對應 Portal 推送消息界面上的「標題」欄位(可選). Bundle bundle = intent.getExtras(); String title = bundle.getString(JPushInterface.EXTRA_TITLE); JPushInterface.EXTRA_MESSAGE 保存伺服器推送下來的消息內容。 對應 API 消息內容的 message 欄位。 對應 Portal 推送消息界面上的"消息內容」欄位。 Bundle bundle = intent.getExtras(); String message = bundle.getString(JPushInterface.EXTRA_MESSAGE); JPushInterface.EXTRA_EXTRA 保存伺服器推送下來的附加欄位。這是個 JSON 字元串。 對應 API 消息內容的 extras 欄位。 對應 Portal 推送消息界面上的「自定義內容」。 Bundle bundle = intent.getExtras(); String extras = bundle.getString(JPushInterface.EXTRA_EXTRA); JPushInterface.EXTRA_CONTENT_TYPE 保存伺服器推送下來的內容類型。 對應 API 消息內容的 content_type 欄位。 Bundle bundle = intent.getExtras(); String type = bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE); JPushInterface.EXTRA_RICHPUSH_FILE_PATH SDK 1.4.0 以上版本支持。 富媒體通消息推送下載後的文件路徑和文件名。 Bundle bundle = intent.getExtras(); String file = bundle.getString(JPushInterface.EXTRA_RICHPUSH_FILE_PATH); JPushInterface.EXTRA_MSG_ID SDK 1.6.1 以上版本支持。 唯一標識消息的 ID, 可用於上報統計等。 Bundle bundle = intent.getExtras(); String file = bundle.getString(JPushInterface.EXTRA_MSG_ID); Action - cn.jpush.android.intent.NOTIFICATION_RECEIVED 收到了通知 Push。 如果通知的內容為空,則在通知欄上不會展示通知。但是,這個廣播 Intent 還是會有。開發者可以取到通知內容外的其他信息。 Intent 參數 JPushInterface.EXTRA_NOTIFICATION_TITLE 保存伺服器推送下來的通知的標題。 對應 API 通知內容的 n_title 欄位。 對應 Portal 推送通知界面上的「通知標題」欄位。 Bundle bundle = intent.getExtras(); String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE); JPushInterface.EXTRA_ALERT 保存伺服器推送下來的通知內容。 對應 API 通知內容的 n_content 欄位。 對應 Portal 推送通知界面上的「通知內容」欄位。 Bundle bundle = intent.getExtras(); String content = bundle.getString(JPushInterface.EXTRA_ALERT); JPushInterface.EXTRA_EXTRA SDK 1.2.9 以上版本支持。 保存伺服器推送下來的附加欄位。這是個 JSON 字元串。 對應 API 通知內容的 n_extras 欄位。 對應 Portal 推送通知界面上的「自定義內容」欄位。 Bundle bundle = intent.getExtras(); String extras = bundle.getString(JPushInterface.EXTRA_EXTRA); JPushInterface.EXTRA_NOTIFICATION_ID SDK 1.3.5 以上版本支持。 通知欄的Notification ID,可以用於清除Notification Bundle bundle = intent.getExtras(); int notificationId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID); JPushInterface.EXTRA_CONTENT_TYPE 保存伺服器推送下來的內容類型。 對應 API 消息內容的 content_type 欄位。 Portal 上暫時未提供輸入欄位。 Bundle bundle = intent.getExtras(); String type = bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE); JPushInterface.EXTRA_RICHPUSH_HTML_PATH SDK 1.4.0 以上版本支持。 富媒體通知推送下載的HTML的文件路徑,用於展現WebView。 Bundle bundle = intent.getExtras(); String fileHtml = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_PATH); JPushInterface.EXTRA_RICHPUSH_HTML_RES SDK 1.4.0 以上版本支持。 富媒體通知推送下載的圖片資源的文件名,多個文件名用 「,」 分開。 與 「JPushInterface.EXTRA_RICHPUSH_HTML_PATH」 位於同一個路徑。 Bundle bundle = intent.getExtras(); String fileStr = bundle.getString(JPushInterface.EXTRA_RICHPUSH_HTML_RES); String[] fileNames = fileStr.spilt(","); JPushInterface.EXTRA_MSG_ID SDK 1.6.1 以上版本支持。 唯一標識通知消息的 ID, 可用於上報統計等。 Bundle bundle = intent.getExtras(); String file = bundle.getString(JPushInterface.EXTRA_MSG_ID); Action - cn.jpush.android.intent.NOTIFICATION_OPENED 用戶點擊了通知。 一般情況下,用戶不需要配置此 receiver action。 如果開發者在 AndroidManifest.xml 里未配置此 receiver action,那麼,SDK 會默認打開應用程序的主 Activity,相當於用戶點擊桌面圖標的效果。 如果開發者在 AndroidManifest.xml 里配置了此 receiver action,那麼,當用戶點擊通知時,SDK 不會做動作。開發者應該在自己寫的 BroadcastReceiver 類里處理,比如打開某 Activity 。 Intent 參數 JPushInterface.EXTRA_NOTIFICATION_TITLE 保存伺服器推送下來的通知的標題。 對應 API 通知內容的 n_title 欄位。 對應 Portal 推送通知界面上的「通知標題」欄位。 Bundle bundle = intent.getExtras(); String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE); JPushInterface.EXTRA_ALERT 保存伺服器推送下來的通知內容。 對應 API 通知內容的n_content欄位。 對應 Portal 推送通知界面上的「通知內容」欄位。 Bundle bundle = intent.getExtras(); String content = bundle.getString(JPushInterface.EXTRA_ALERT); JPushInterface.EXTRA_EXTRA SDK 1.2.9 以上版本支持。 保存伺服器推送下來的附加欄位。這是個 JSON 字元串。 對應 API 消息內容的 n_extras 欄位。 對應 Portal 推送通知界面上的「自定義內容」欄位。 Bundle bundle = intent.getExtras(); String type = bundle.getString(JPushInterface.EXTRA_EXTRA); JPushInterface.EXTRA_NOTIFICATION_ID SDK 1.3.5 以上版本支持。 通知欄的Notification ID,可以用於清除Notification Bundle bundle = intent.getExtras(); int notificationId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID JPushInterface.EXTRA_MSG_ID SDK 1.6.1 以上版本支持。 唯一標識調整消息的 ID, 可用於上報統計等。 Bundle bundle = intent.getExtras(); String file = bundle.getString(JPushInterface.EXTRA_MSG_ID); 代碼示例 public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Log.d(TAG, "onReceive - " + intent.getAction()); if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) { } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) { System.out.println("收到了自定義消息。消息內容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE)); // 自定義消息不會展示在通知欄,完全要開發者寫代碼去處理 } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) { System.out.println("收到了通知"); // 在這里可以做些統計,或者做些其他工作 } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { System.out.println("用戶點擊打開了通知"); // 在這里可以自己寫代碼去定義用戶點擊後的行為 Intent i = new Intent(context, TestActivity.class); //自定義打開的界面 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } else { Log.d(TAG, "Unhandled intent - " + intent.getAction()); } }
❹ 求Android友盟sdk統計的簡單demo程序
http://dev.umeng.com/analytics/android-doc/integration 下載地址
❺ 友盟推送android java端的代碼怎麼使用
最好的方法,研讀官方提供的Demo,這里說的Java端應該是前端,即Android App端,在應用程序啟動的時候,開啟推送功能,同時在清單文件移植Demo提供的一些內容,測試幾遍就差不多了。。。
❻ 友盟-推送-Andorid-後台顯示消息發送成功,設備並沒有收到消息,
黃金問題。
在用戶後台,可以查詢設備狀態,以及設備收發消息情況,能夠查詢到設備的狀態,以及設備的收發歷史情況。
1、如果設備不在線,需要明確幾個步驟:
appkey,message-secret-key, package-name, intent 等是否填寫正確。
使用demo是否OK,替換為自己的appkey, message-secret-key, package-name, intent之後是否work,App是否打開。機型是什麼,網路環境是什麼,機器是否Root過,是否有被手機管理軟體強殺過,是否頻繁切換過網路(或者中止網路)等。後台的長連service是否已經啟動。 (umengService_V1). 通過logcat查看。
2、 設備在線的話,查詢設備收發消息歷史
關於消息發送查詢歷史查詢,有一列叫做「狀態」,有「已送達」和「已取走」兩個。 「已送達」表示是千真萬確的送達設備了。「已取走」表示伺服器下發到設備了,很可能由於網路原因消息丟失了。 「已送達」的情況下,消息沒有收到,很可能是自身集成的錯誤。 這個時候要明確發的是 「通知(notification)」 還是 「消息(message)」。 消息的話,需要一些額外的處理,可以再閱讀一下SDK中關於「消息」的處理。
❼ 友盟推送 android 收到了消息,何為沒有展示到通知欄
第一,支持多維度用戶分群,幫助開發者將不同用戶按照不同特徵分群,從而為不同分群的用戶推送最合適的內容,大幅度提升消息打開率和用戶滿意度。
第二,自由選擇發送內容。開發者可以選擇發送通知或者自定義消息,自主決定發送內容是否被展示給用戶。開發者可以自由配置用戶查看消息後的操作,支持打開 APP指定頁面、打開指定網頁以及其它自定義行為。
第三,靈活接入。支持開發者通過Web 端操作或者 API接入,滿足不同場景下的推送需求。Web端後台操作:開發者可以在 Web後台人工操作,按多個維度篩選用戶並群發消息。
第四,支持API接入方式:開發者可以通過 API對接友盟伺服器,自動化的推送消息。
最後,提下產品的優勢:1)優質的服務質量。實現了同一設備多 APP共享一個長連接、智能心跳等優化方案。消息發送速度快,長連接穩定,設備能耗低。2)提供多種個性化功能,確保用戶體驗最優。最關鍵的是,目前一切,並且沒有任何收費的計劃!
❽ android 友盟推送為什麼卸載重裝還是能收到推送
appdelegate里有個方法,-(void)application:(UIApplication*):(NSDictionary*)userInfo收到推送消息後就會調用,你在這里讀取消息,再以通知的形式發送到你要處理的指定頁面即可
❾ 如何使用友盟 Cocos2d-x 分享組件實現 Android/iOS 分享功能
首先我簡單介紹一下組件壓縮包的組成
Cocos2dx
實現Cocos2d-x中跨平台分享功能,需拷貝到您項目的Classes文件夾中;
Platforms
原生的Android和iOS社會化組件SDK,需要您將庫和資源拷貝到對應平台的項目中;
doc
組件的集成文檔;
Umeng_Cocos2dx_Demo_V1.0
Android部分的demo文件,可以安裝在手機上看一下簡單的分享效果和樣式
Cocos2d-x雖然是一個跨平台的引擎,但是對於Android和IOS平台來說,具體的集成方式還是有一定的區別,這里分別介紹Android和IOS平台集成中不同的地方,然後再集中介紹跨平台通用的部分。
Android平台集成步驟:
步驟一:
下載Cocos2d-x組件(下載地址) 並且將jar包添加到build path 路徑下,將res資源文件夾加入到你工程對應資源文件下。將Platforms/Android/controller目錄下的com文件夾拷貝到您的Cocos2d-x項目Android平台的src目錄下,並且在jni/Android.mk中的LOCAL_SRC_FILES下添加如下配置 (注意格式,否則會編譯出錯) :
../../Classes/Cocos2dx/Android/CCUMSocialController.cpp \
../../Classes/Cocos2dx/ShareButton/UMShareButton.cpp \
../../Classes/Cocos2dx/Common/CCUMSocialSDK.cpp
步驟二:
在Cocos2dxActivity子類的onCreate方法下添加如下代碼,用來完成初始化步驟
// this為Cocos2dxActivity類型, 參數2為描述符,可隨意修改.
CCUMSocialController.initSocialSDK(this, "com.umeng.social.share");
步驟三:
在代碼中覆寫Cocos2dxActivity子類的onActivityResult方法,用來實現回調方法。在onActivityResult添加如下代碼 :
// 授權回調
CCUMSocialController.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
iOS平台集成步驟:
步驟一:
解壓SDK壓縮包,將Platforms/iOS文件夾和Cocos2dx文件夾拖入工程目錄,並刪除Cocos2dx/Android文件夾,添加後應該是這個效果:
步驟二:
添加系統需要的framework
Security.framework //用於系統加密處理
libiconv.dylib //QQ互聯的庫文件
SystemConfiguration.framework //QQ互聯需要的framework
CoreGraphics.framework //QQ互聯需要的framework
Social.framework //分享組件需要的framework,如果不使用twitter則不需要
libsqlite3.dylib //QQ互聯需要的framework
libstdc++.dylib //C++的庫文件
CoreTelephony.framework //QQ互聯需要的framework
libz.dylib //QQ互聯需要的framework
Accounts.framework //系統需要的framework,如果不使用twitter則不需要
步驟三:
實現系統的回調方法,在Xcode工程中的ios文件夾下的AppController.mm文件中加入下面的代碼:
#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [UMSocialSnsService handleOpenURL:url];
}
完成了上述准備工作之後,就可以開始正式的分享步驟了,友盟提供了多種分享樣式,有精力的開發者可以使用底層介面,可以完全自由定製分享界面和樣式,不過相信大部分開發者們使用第三方插件的初衷都是為了節省精力,所以這里就只介紹使用默認分享界面的方法,有更多需求的開發者們可以自己探索自定義界面介面部分。
步驟一:加入系統需要的頭文件
// 授權回調
#include "Cocos2dx/Common/CCUMSocialSDK.h"
#include "Cocos2dx/ShareButton/UMShareButton.h"
// 使用友盟命令空間
USING_NS_UM_SOCIAL;
// ...... 代碼省略
// HelloWorld為cocos2d::CCLayer的子類
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
}
步驟二:分享按鈕的創建
// 創建分享按鈕, 參數1為按鈕正常情況下的圖片, 參數2為按鈕選中時的圖片,參數3為友盟appkey, 參數4為分享回調
UMShareButton *shareButton = UMShareButton::create("shareNormal.png","shareSelected.png", "你的友盟appkey", share_selector(shareCallback)) ;
步驟三:設置分享平台及內容
// 顯示在友盟分享面板上的平台
vector
* platforms = new vector
();
platforms->push_back(SINA);
platforms->push_back(RENREN) ;
platforms->push_back(DOUBAN) ;
platforms->push_back(QZONE) ;
platforms->push_back(QQ) ;
// 設置友盟分享面板上顯示的平台
shareButton->setPlatforms(platforms);
// 設置文本分享內容
shareButton->setShareContent("umeng social Cocos2d-x sdk.") ;
// 設置要分享的圖片, 圖片支持本地圖片和url圖片, 但是url圖片必須以http://或者https://開頭
shareButton->setShareImage("/sdcard/header.jpeg") ;
// 設置按鈕的位置
shareButton->setPosition(ccp(150, 180));
// 然後開發者需要將該按鈕添加到游戲場景中
CCMenu* pMenu = CCMenu::create(shareButton, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu, 1);
// ********************** 設置平台信息 ***************************
// CCUMSocialSDK *sdk = shareButton->getSocialSDK();
// sdk->setQQAppIdAndAppKey("設置QQ的app id", "appkey");
// sdk->setWeiXinAppId("設置微信和朋友圈的app id");
// sdk->setYiXinAppKey("設置易信和易信朋友圈的app id");
// sdk->setLaiwangAppInfo("設置來往和來往動態的app id",
// "設置來往和來往動態的app key", "我的應用名");
// sdk->setFacebookAppId("你的facebook appid");
// 設置用戶點擊一條圖文分享時用戶跳轉到的目標頁面, 一般為app主頁或者下載頁面
// sdk->setTargetUrl(" ");
// 打開或者關閉log
// sdk->setLogEnable(true) ;
// ********************** END ***************************
集成到這一步就完成了,如果沒有異常,應該會出現下面的界面,這說明你已經成功實現了集成工作。
❿ 友盟-推送-Andorid-消息推送-打開通知消息進入特定Activity操作
要獲取參數的話 只能通過自定義打開行為,重寫dealWithCustomAction
在消息推送SDK里,有一個類UmengNotificationClickHandler,負責處理消息的點擊事件。 該類主要有四個成員方法:
public void launchApp(Context context, UMessage msg);
public void openUrl(Context context, UMessage msg);
public void openActivity(Context context, UMessage msg);
public void dealWithCustomAction(Context context, UMessage msg);
這四個方法,分別對應於四種打開方式。其中,launchApp、openUrl、openActivity這三個方法已經由消息推送SDK完成,而dealWithCustomAction則只是一個空的方法。 若開發者需要處理自定義行為,則可以重寫方法dealWithCustomAction();其中自定義行為的內容,存放在UMessage.custom中。下面是處理自定義行為的代碼:
/**
* 該Handler是在BroadcastReceiver中被調用,故
* 如果需啟動Activity,需添加Intent.FLAG_ACTIVITY_NEW_TASK
* */
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
@Override
public void dealWithCustomAction(Context context, UMessage msg) {
Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
}
};
mPushAgent.setNotificationClickHandler(notificationClickHandler);
注意
以上代碼需在 Application 的onCreate() 中調用使用以下介面,而不是在Activity 中調用。如果在Activity中調用此介面,若應用進程關閉, 則設置的介面會無效。 請參考demo 應用代碼。
該Handler是在BroadcastReceiver中被調用。因此若需啟動Activity,需為Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否則無法啟動Activity。
若開發者想自己處理打開網頁、打開APP、打開Activity,可重寫相應的函數來實現。