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',
    ]
  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/9530860.html
Copyright © 2011-2022 走看看