python搭建友盟以及个推推送web服务器

一、友盟客户端demo:

由于SDK原因,新版Android Studio的Android API 28 Platform无法同步新建项目,

所以我最终选择下载android-studio-bundle-141.1903250-windows.exe,Android API 22 Platform。

 

安卓虚拟机我选择的是Genymotion,十分好用。http://www.runoob.com/w3cnote/android-tutorial-genymotion-install.html

参考链接完成安装并加入Genymotion-ARM-Translation.zip

 

参考https://developer.umeng.com/docs/66632/detail/66744导入Demo项目,由于SDK不匹配,要修改一些文件。

Android结构下:

 

1、build.gradle(Project: MultiFunctionAndroidDemo):

dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

2、build.gradle(Module: UMLibrary):

compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

3、gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip


由于ExampleInstrumentedTest报错,查了资料也没改成,最后决定用默认的将其替换
package com.umeng.soexample;

import android.app.Application;
import android.test.ApplicationTestCase;

public class ExampleInstrumentedTest extends ApplicationTestCase<Application> {
public ExampleInstrumentedTest() {
super(Application.class);
}
}

其余按照参考教程即可。

二、友盟推送使用

在友盟官网下载python SDK v1.0 beta, 由于是beta版本,所以代码存在错误。

demo.py:

1、AndroidNotification.DisplayType.NOTIFICATION -> AndroidNotification.DisplayType.notification

2、删除对setExtraFiled的使用

 

androidnotification.py:

更正为:

if "body" in payloadJson:
  bodyJson = payloadJson["body"]
else:
  payloadJson["body"] = bodyJson

 

三、个推推送使用

 客户端安卓模拟器拉入getui_sdk.apk,获得CID

下载python sdk按教程使用。

我这里用个推第二次推动时,会在没找到最优host的时候调用self.httpPostJson(self.host, params),

程序会报错:

我的解决方法是在IGeTui类初始化的时候就给self.host先根据输入的host赋一个初始值。

 

四、基于django建立python web服务器

参考http://www.runoob.com/django/django-tutorial.html

由于我要用POST默认的x-www-form-urlencoded格式发送数据,所以我们要取消csrf验证。

 在settings.py中注释相关字段即可

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

posted on 2018-08-24 16:58  穷酸秀才大草包  阅读(337)  评论(0编辑  收藏  举报

导航