一、友盟客户端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):

  1. dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'
  2.  
  3. // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }

2、build.gradle(Module: UMLibrary):

  1. compileSdkVersion 22
    buildToolsVersion "22.0.1"
  2.  
  3. defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
  4.  
  5. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  6.  
  7. }

3、gradle-wrapper.properties:

  1. distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
  1.  
  2. 由于ExampleInstrumentedTest报错,查了资料也没改成,最后决定用默认的将其替换
  1. package com.umeng.soexample;
  2.  
  3. import android.app.Application;
    import android.test.ApplicationTestCase;
  4.  
  5. public class ExampleInstrumentedTest extends ApplicationTestCase<Application> {
    public ExampleInstrumentedTest() {
    super(Application.class);
    }
    }
  6.  
  7. 其余按照参考教程即可。

二、友盟推送使用

在友盟官网下载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',
]

python搭建友盟以及个推推送web服务器的更多相关文章

  1. Mac OS X上搭建Apache、PHP、MySQL的Web服务器

    mac OS 系统太帅了,安装php的环境如此简单,大赞一个! 转载自http://jingyan.baidu.com/article/39810a23e1939fb636fda6a9.html 在M ...

  2. 友盟umeng消息推送直接复制就能用(纯干货)

    一. 单播推送(unicast) 1.1 图 1.2 代码 1 /** 2 * 根据设备的deviceToken, 去给指定的设备推送消息 3 * 4 * @param deviceToken 单个d ...

  3. 《Python高效开发实战》实战演练——内置Web服务器4

    <Python高效开发实战>实战演练——开发Django站点1 <Python高效开发实战>实战演练——建立应用2 <Python高效开发实战>实战演练——基本视图 ...

  4. Python小项目四:实现简单的web服务器

    https://blog.csdn.net/u010103202/article/details/74002538 本博客是整理在学习实验楼的课程过程中记录下的笔记形成的,参考:https://www ...

  5. Python之路【第二十七篇】:web服务器django

    Django 一.web框架 框架,即时framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单的说,就是用别人搭建好的舞台来表演你的才艺 ...

  6. Python复习笔记(十)Http协议--Web服务器-并发服务器

    1. HTTP协议(超文本传输协议) 浏览器===>服务器发送的请求格式如下:(浏览器告诉服务器,浏览器的信息) GET / HTTP/1.1 Host: www.baidu.com Conne ...

  7. .NET手记-友盟消息推送服务器端加密算法的实现

    最近为App开发消息推送功能,这里我们采用了友盟的消息推送服务,但其后台简陋,可定制化程度低,所以决定接入服务器端API,在自己的服务器上部署一套推送服务. 其中涉及到很多问题,首先要解决的就是与友盟 ...

  8. 友盟iOS推送配置(从真机调试到推送)

    下面我来讲解一下友盟iOS的推送配置,其实友盟只是一个示例,换做其余的第三方推送服务也会适用,只是第三方的后面服务变了而已. iOS推送(包括真机调试)所需要的步骤和文件如下: 备注:这里我将省略掉一 ...

  9. 【转载自友盟消息推送iOS文档】在appDelegate中注册推送

    1.2   基本功能集成指南 提示 请先在友盟的消息推送管理后台中创建App,获得AppKey和AppSecret 导入SDK 下载 UMessage_Sdk_All_x.x.x.zip并解压缩 导入 ...

随机推荐

  1. wamp环境初步使用

    在wamp的www目录下部署页面,localhost/目录/index.html

  2. table表格td内内容自动换行

    项目开发时,遇到问题:td内传入数据,全是字母,不会自动换行 一般字母数字/特殊符号的话,会被浏览器默认是一个字符串或者说一个单词,不会自动换行 所以需要设置一下,让表格内容自动换行. 1.给td标签 ...

  3. jQueryMobile(二)

    三].按钮 <!-- 一个jQueryMobile页面 --> <div data-role='page'> <div data-role='header'>< ...

  4. REP-0118:can not create temporary file(无法创建临时文件)

    解决办法: 查看一下注册表里面的reports_tmp 的路径 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_DevSuiteHome1 .是不 ...

  5. 08、Spark常用RDD变换

    08.Spark常用RDD变换 8.1 概述 Spark RDD内部提供了很多变换操作,可以使用对数据的各种处理.同时,针对KV类型的操作,对应的方法封装在PairRDDFunctions trait ...

  6. 什么是 pwd

    pwd print work directory, 指linux terminal的当前目录 $ pwd

  7. 用户表单事件(focus事件)

    以前做用户系统的时候经常用到表单验证,正则表达式事件来处理和绑定事件和进行事件,这里说的其实只是一小部分,也不是很值得写,但是今天遇到了还是写一下,毕竟基础还是蛮重要的,就算懂的童鞋,巩固一下也是好的 ...

  8. 智能开关:orange pi one(arm linux)控制继电器

    大家都知道,继电器是用小电流去控制大电流运作的一种“自动开关”,在我们生活.工作中随处可见.现在的“智能家居”概念,有很多功能模块其实就是“智能开关”,远程开关.定时开关.条件触发开关等等. 下面介绍 ...

  9. Android(java)学习笔记66:Android Studio中build.gradle简介

    1.首先我们直接上代码介绍: // Top-level build file where you can add configuration options common to all sub-pro ...

  10. Vsftpd服务传输文件(转)

    本章节先通过介绍文件传输协议来帮助读者理解FTP协议的用处,安装vsftpd服务程序并逐条分析服务文件的配置参数. 完整演示vsftpd服务匿名访问模式.本地用户模式及虚拟用户模式的配置方法,介绍PA ...