zoukankan      html  css  js  c++  java
  • 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',
    ]
  • 相关阅读:
    有限元方法的核心思想
    由拉格朗日函数推导守恒定律
    codeforces 1181D
    gym 102222 J
    COJ#10C
    已然逝去の夏日泳装
    NC50 E
    codeforces 1147 C
    agc 037 C
    19牛客多校第十场G
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/9530860.html
Copyright © 2011-2022 走看看