phonegap 百度雲推

1 建立新工程php

-----獲取api key 和secret keyhtml

2,推送設置java

 

3,新建安卓項目,並把應用包名 和 推送中設置的包名設置一致android

4,下載百度雲客戶端sdkjson

5,解壓,並添加libs文件夾文件到相應路徑,並添加pushservice-4.2.0.63.jar到構建路徑api

6,添加 Demo\src\com\baidu\push\example 路徑下的Utils.java到 包下服務器

7,新建MyPushMessageReceiver類並繼承FrontiaPushMessageReceiverapp

8,根據提示初始化全部方法,並複寫onNotificationClicked方法ide

/**
     * 接收通知點擊的函數。注:推送通知被用戶點擊前,應用沒法經過接口獲取通知的內容。
     * 
     * @param context
     *            上下文
     * @param title
     *            推送的通知的標題
     * @param description
     *            推送的通知的描述
     * @param customContentString
     *            自定義內容,爲空或者json字符串
     */
    @Override
    public void onNotificationClicked(Context context, String title,
            String description, String customContentString) {
        String notifyString = "通知點擊 title=\"" + title + "\" description=\""
                + description + "\" customContent=" + customContentString;
        Log.d(TAG, notifyString);

        // 自定義內容獲取方式,mykey和myvalue對應通知推送時自定義內容中設置的鍵和值
        if (!TextUtils.isEmpty(customContentString)) {
            JSONObject customJson = null;
            try {
                customJson = new JSONObject(customContentString);
                String myvalue = null;
                if (customJson.isNull("mykey")) {
                    myvalue = customJson.getString("mykey");
                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        // Demo更新界面展現代碼,應用請在這裏加入本身的處理邏輯
        updateContent(context, notifyString);
    }

    private void updateContent(Context context, String content) {

        MainActivity.url="http://www.sina.com";
        MainActivity.num=1;
        Intent intent = new Intent();
        intent.setClass(context.getApplicationContext(), MainActivity.class);
        
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        
        context.getApplicationContext().startActivity(intent);

        
    }
View Code

 

 

9 修改AndroidManifest.xml文件函數

----------------------修改application節點 android:name="com.baidu.frontia.FrontiaApplication"

----------------------註冊MyPushMessageReceiver類

xml文件以下

  <application android:hardwareAccelerated="true"
         android:icon="@drawable/icon"
          android:label="小洋"
           android:name="com.baidu.frontia.FrontiaApplication">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name=".SplashActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:configChanges="keyboardHidden" android:name=".GuideActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
        <activity android:name=".MainActivity" />
        <activity android:configChanges="orientation|keyboardHidden" android:label="MediaViewActivity" android:name="com.baidu.android.pushservice.richmedia.MediaViewActivity" />
        <activity android:configChanges="orientation|keyboardHidden" android:label="MediaListActivity" android:launchMode="singleTask" android:name="com.baidu.android.pushservice.richmedia.MediaListActivity" />
        <receiver android:name="com.hn.esgj.MyPushMessageReceiver">
-                                                                                                                                                                                     <intent-filter>
-  
                                                                                                                                                                                                                                                  <action android:name="com.baidu.android.pushservice.action.MESSAGE" />
                <action android:name="com.baidu.android.pushservice.action.RECEIVE" />
                <action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
</intent-filter>
</receiver>
        <receiver android:name="com.baidu.android.pushservice.PushServiceReceiver" android:process=":bdservice_v1">
-                                                                                                                                                                                     <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="com.baidu.android.pushservice.action.notification.SHOW" />
                <action android:name="com.baidu.android.pushservice.action.media.CLICK" />
            </intent-filter>
</receiver>
        <receiver android:name="com.baidu.android.pushservice.RegistrationReceiver" android:process=":bdservice_v1">
-                                                                                                                                                                                     <intent-filter>
                <action android:name="com.baidu.android.pushservice.action.METHOD" />
                <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            </intent-filter>
</receiver>
        <service android:exported="true" android:name="com.baidu.android.pushservice.PushService" android:process=":bdservice_v1">
-                                                                                                                                                                                     <intent-filter>
                <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
            </intent-filter>
</service>
    </application>
View Code

 

 

10 在主active的onCreate方法中 開啓

    public void onCreate(Bundle savedInstanceState) {
        try{
            PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY, "KH2j92etnCvrO0WyDLUQob4z") ;
        }catch (Exception e){
            
        }
        super.onCreate(savedInstanceState);
        
        //setContentView(R.layout.activity_main);
         Toast.makeText(getApplicationContext(), url, Toast.LENGTH_SHORT).show();  
         super.setBooleanProperty("loadInWebView", true);  
         super.loadUrl(url);
            this.num=0;
            this.url="file:///android_asset/www/index.html";
    }
View Code

 

11,到百度控制檯推送通知作測試

 

理論上成功,服務器端請下載相應的sdk

相關文章
相關標籤/搜索