Cobub Razor
Cobub Toaster
Other Links
Cobub Razor
Cobub Toaster
Other Links
這是本文檔舊的修訂版!
Huawei Push the plug is Cobub Razor official platform based Huawei alliance to push the development of a plug-in. It integrates features a push function Tag Huawei and Cobub Razor Alliance platform provides more convenient, fast and accurate a push. Huawei Union open platform for messaging applications to help companies push through low-cost Internet access, provide a sound, efficient and stable service system solves the Internet cloud to the phone side of the message interoperability problems.
Huawei push the plug before integration, ensure the establishment of a database related tables, can go toheresql file Download related to import into your database, create a related table (note changes in the prefix table sql razor_, in order to maintain your own database table prefix and consistent).
1.Ensure Cobub Razor and Cobub authorized users Center has successfully bound. If not binding, see here. 2.Activate Huawei Cobub Razor in push applications To use the plug-in Huawei push push, the system needs to be allocated for each of the corresponding authorization Key App (currently only supports Android platform). 3. Huawei push SDK integration ** Huawei Huawei Push Coalition downloaded SDK for the. Rar file, after local decompression, go to “micro-kernel SDK \ Doc” directory, “Huawei PushSDK integration instructions. Pdf” Reference Doc directory integration Huawei push SDK documentation
Integration steps:
Adding acquired cobub razor’s ums.jar Huawei to push the project libs directory. Right on the project and select Build Path→ Configure build path … → left select Java Build Path→; choose Libraries Select Card →; Add JARs .. →; choose the items currently Libs directory, select the jar package, and then click OK.
* Add authorization
uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" uses-permission android:name="com.android.mylauncher.permission.INSTALL_SHORTCUT"
* Add Service Statement
meta-data android:name="UMS_APPKEY" android:value="APPKEY" meta-data
Note: PACKAGENAME replace the package name for the project. APPKEY which is created by Cobub razor to get to the application of
package PACKAGENAME; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.util.Log; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.json.JSONException; import org.json.JSONObject; import com.wbtech.ums.UmsAgent; import com.wbtech.ums.common.CommonUtil; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; public class SendMapping extends BroadcastReceiver { public static String NAME = "BroadcastReceiver2SendMapping"; boolean isGetCobubBroadcoast = false; boolean isGetHuaWeiBroadcoast = false; String serviceURL = "http://push.cobub.com/index.php?/api/huawei/postmapping"; public SendMapping() { } @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.d(NAME,"SendMapping onReceive"); //注冊 receiver // SendMapping receiver = new SendMapping(); // IntentFilter filter = new IntentFilter(); // filter.addAction("cobub.razor.message"); // filter.addAction("com.huawei.android.push.intent.REGISTRATION"); // registerReceiver(receiver, filter); String action = intent.getAction(); SharedPreferences sp= context.getSharedPreferences("cobub_huawei_sharepreference", 0); if(action.equals("cobub.razor.message")){ String deviceid = intent.getStringExtra("deviceid"); Log.d("postdata ", "get deviceid : "+deviceid); sp.edit().putString("deviceid", deviceid).commit(); isGetCobubBroadcoast = true; } if(action.equals("com.huawei.android.push.intent.REGISTRATION")){ String deviceToken; try { deviceToken = new String(intent.getByteArrayExtra("device_token"), "UTF-8"); sp.edit().putString("deviceToken", deviceToken).commit(); Log.d("postdata ", "get deviceToken : "+deviceToken); isGetHuaWeiBroadcoast = true; } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(isGetCobubBroadcoast&& isGetHuaWeiBroadcoast){ final JSONObject obj = new JSONObject(); String deviceid = sp.getString("deviceid", ""); String deviceToken = sp.getString("deviceToken", ""); try { obj.put("deviceToken", deviceToken); obj.put("deviceid", deviceid); obj.put("app_key", CommonUtil.getAppKey(context)); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.d("postdata ", "post deviceid and deviceToken"); new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub post(serviceURL,obj.toString()); isGetCobubBroadcoast = false; isGetHuaWeiBroadcoast = false; } }).start(); } } public static int post(String url, String data) { String returnContent = ""; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); Log.d("postdata", "SMpost"+url+" "+data); try { StringEntity se = new StringEntity("content="+data, HTTP.UTF_8); se.setContentType("application/x-www-form-urlencoded"); httppost.setEntity(se); HttpResponse response = httpclient.execute(httppost); int status = response.getStatusLine().getStatusCode(); Log.d("postdata ", "status==="+status); String returnXML = EntityUtils.toString(response.getEntity()); returnContent = URLDecoder.decode(returnXML); switch (status) { case 200: { Log.d("postdata ", "status===200"); JSONObject obj = new JSONObject(returnContent); return obj.getInt("flag"); } default: Log.d("postdata ", "status="+status); break; } } catch (Exception e) { e.printStackTrace(); JSONObject jsonObject = new JSONObject(); try { jsonObject.put("err", e.toString()); returnContent = jsonObject.toString(); } catch (JSONException e1) { e1.printStackTrace(); } } Log.d("postdata ", "post deviceid error deviceToken"); return 0; } }
Import UmsAgent in your application’s main Activity Lane;
import com.wbtech.ums.UmsAgent;
Then start the initialization phase in your application initialization SDK:
UmsAgent.setBaseURL("http://192.168.1.104:80/dev07/razor/web/index.php?"); UmsAgent.update(this); UmsAgent.onError(this); UmsAgent.setDefaultReportPolicy(this, 1); UmsAgent.bindUserIdentifier(this, "xd.."); UmsAgent.postClientData(this); //注冊 receiver SendMapping receiver = new SendMapping(); IntentFilter filter = new IntentFilter(); filter.addAction("cobub.razor.message"); filter.addAction("com.huawei.android.push.intent.REGISTRATION"); registerReceiver(receiver, filter);
This method must be called within the Activity or Service category. Under normal circumstances, you can call the Activity’s onCreate () method To ensure that unforeseen circumstances cause initialization fails, the application is recommended once every start calling the initialization interface.。
進入Cobub Razor插件華為推送首頁,插件會讀取所有當前系統(tǒng)中的Android應(yīng)用列表。 在每個應(yīng)用后都有推送操作,用戶可以根據(jù)自身需要進行選擇消息類型。 進入推送詳細界面,根據(jù)要求選擇標簽或者整個APP推送,填寫相關(guān)內(nèi)容并進行推送
進入插件中的推送報告模塊,用戶可以查看用戶推送的報告。注:系統(tǒng)只支持30日內(nèi)推送報告查詢服務(wù)。用戶可通過右上角選擇時間段。 推送報告顯示了所有激活的APP的推送報告,點擊單個APP查看單個應(yīng)用的推送報告。
華為推送插件按月結(jié)算,系統(tǒng)會每個月根據(jù)用戶上個月的用戶所有APP在線用戶總數(shù)來進行結(jié)算。 華為推送插件的收費是按照當月在線人數(shù)結(jié)算,與推送次數(shù)無關(guān)。 為保證推送服務(wù)正常進行,請到個人中心賬戶充值模塊預先充值。
如何獲取Package Name? 應(yīng)用標識(Package Name),常以com開頭 方法: