• phonegap 百度云推


    1 创建新工程

    -----获取api key 和secret key

    2,推送设置

    3,新建安卓项目,并把应用包名 和 推送中设置的包名设置一致

    4,下载百度云客户端sdk

    5,解压,并添加libs文件夹文件到相应路径,并添加pushservice-4.2.0.63.jar到构建路径

    6,添加 Demosrccomaidupushexample 路径下的Utils.java到 包下

    7,新建MyPushMessageReceiver类并继承FrontiaPushMessageReceiver

    8,根据提示初始化所有方法,并复写onNotificationClicked方法

    /**
         * 接收通知点击的函数。注:推送通知被用户点击前,应用无法通过接口获取通知的内容。
         * 
         * @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

  • 相关阅读:
    关于HTML Table标签的边框问题总结
    Java编程中-servlet
    编程语言简史
    SQL SERVER 数据库操作脚本
    JQuery实现方法,简单示例
    001-python基础-python安装和升级
    .cs文件与aspx.cs文件之间的区别是什么???他们的作用是什么???ASPX文件的作用是什么?
    判读字符串长度
    <%=id%>是什么意思
    sql中复合组建解析
  • 原文地址:https://www.cnblogs.com/sheapchen/p/4042500.html
Copyright © 2020-2023  润新知