前言

来来来,假设有这样一个场景,我邀请某人去下载注册一个app,这样他能获得奖励,我也可以获得奖励,那怎么匹配邀请人与被邀请人呢?

那你肯定要说了,这还不简单,邀请码啊,每个用户有自己唯一的邀请码,被邀请方下载注册后填写对应的邀请码,这不就好了吗?

然而...不麻烦吗???

如果哥哥我的app自己带有邀请码,那得多方便啊!!

推荐下载app的流程一般是:

我们可以看到,这里有一个很重要的中转站→浏览器。那我们是不是可以从这里做文章呢!

如果我们可以在浏览器打开的时候,把邀请码作为参数传递过去,那不就天下太平一见生财了嘛!嘿嘿,这里推荐下一篇:Android 通过浏览器打开手机app

但是这种的话,并不能保证用户一定可以拿到链接传递的参数!毕竟这种是要在已经安装了App的情况下,才可以拿到参数,所以这种是不可取的。

所以,这里该推出我们的主角了:OpenInstall

集成

集成jar

配置AndroidMainfest

权限配置

App_key配置

android:name="com.openinstall.APP_KEY"

android:value="ipriom"/>

配置获取参数的Activity

android:name=".MainActivity"

android:windowSoftInputMode="adjustPan|stateHidden">

注意事项

假设你的默认启动页是MainActivity,那么最好不要把2个 混搭在一起

配置Application

在onCreate()中配置

if (isMainProcess()) {

OpenInstall.init(this);

OpenInstall.setDebug(true);

}

/**

* 判断是否是主进程

*

* @return

*/

public boolean isMainProcess() {

int pid = android.os.Process.myPid();

ActivityManager activityManager = (ActivityManager) getSystemService

(Context.ACTIVITY_SERVICE);

for (ActivityManager.RunningAppProcessInfo appProcess : activityManager

.getRunningAppProcesses()) {

if (appProcess.pid == pid) {

return getApplicationInfo().packageName.equals(appProcess.processName);

}

}

return false;

}

配置混淆文件

#忽略警告

-dontwarn com.fm.openinstall.**

#避免混淆

-keep public class com.fm.openinstall.* {*; }

获取参数

我们看下MainActivity中怎么获取数据:

(1)在oncreate()中设置唤醒App时获取参数回调:

/**

* 设置获取唤醒app时获取参数回调

*/

private void getWakeUpInfo() {

OpenInstall.getWakeUp(getIntent(), this);

}

(2)获取唤醒App时传递过来的参数

@Override

public void onWakeUpFinish(AppData appData, Error error) {

XLog.e(error == null ? appData.toString() : error.toString());

}

(3)配置onNewIntent

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

//此处要调用,否则App在后台运行时,会无法截获

OpenInstall.getWakeUp(intent, this);

}

以上的话,其实我们可以自己实现,通过上面提供的文章,这步我们完全可以自己做到。

但是另外一个方法,目前博主也想不出来是怎么实现的:

/**

* 获取安装的时候从web端传递过来的参数信息

*/

private void getInfo() {

OpenInstall.getInstall(new AppInstallListener() {

@Override

public void onInstallFinish(AppData appData, Error error) {

if (error == null) {

if (appData == null) {

return;

}

if (!TextUtils.isEmpty(appData.getData())) {

Toast.makeText(MainActivity.this, "从网页唤醒app" + appData.toString(), Toast.LENGTH_SHORT).show();

}

} else {

XLog.e("error--------------" + error.toString());

}

}

});

}

这里我们解释下两个方法的区别:

getInfo

onWakeUpFinish

上面的是首次安装走的回掉,下面的是app已经存在,网页直接唤醒app走的回掉,场景不同。

这里是不是已经有点蒙了呢!看下哥们之前写的测试文档:

测试

url地址测试:

https://app-ipriom.openinstall.io/js-test?

testKey=11111111&testKey2=3333333333333333333333

testKey=11111111&testKey2=3333333333333333333333可以随意添加,其实就是get请求参数。在浏览器输入以上地址:回车运行如果是首次运行(即你手机上没有安装此app),那会进入下载页面:安装后点击运行,这里我们可以获取到传递到的参数这个时候可以修改?testKey=11111111&testKey2=3333333333333333333333 参数列表,app也可以获取得到修改后的参数列表。如:修改为?testKey=keyValue 后,拉起的页面为:

这里是不是已经可以看出端倪了呢!一个方法是获取安装的时候传递的参数,这个只是一次性的,只会获取一次

另一个方法是获取唤醒的时候传递的参数的,这个方法是可以无数次使用的,且参数是随时可以变化的。

到了这里,其实已经满足了我们的需求了!

测试

我们比较关心的是兼容问题,这边博主也花了一点时间去做测试:

测试:UC浏览器,QQ浏览器等较主流的浏览器,是否可以拉起。

拉起的前提下,是否可以获取得到参数,以及参数是否正确。

前提:

能通过网页拉起APP的前提是:手机安装有app

该app至少被打开过一次

与网络是否切换无关

测试列表:三星:

代表机型:三星s8+

原生浏览器测试通过

QQ浏览器测试通过

360浏览器测试通过

UC浏览器测试通过小米:

代表机型:小米6

原生浏览器测试通过

360浏览器测试通过

UC浏览器测试通过

QQ浏览器测试通过华为:

代表机型:华为P9 (高配全网通)

原生浏览器测试通过

QQ浏览器测试通过

360浏览器测试通过

UC浏览器测试通过酷派:

代表机型:酷派大神Note3

原生浏览器测试通过

QQ浏览器测试通过

360浏览器测试通过

UC浏览器测试通过VIVO:

代表机型:VIVOX9I

原生浏览器测试通过

QQ浏览器测试通过

360浏览器测试通过

UC浏览器测试通过HTC

代表机型:HTCm9w

原生浏览器测试通过

QQ浏览器测试通过

360浏览器测试通过

UC浏览器测试通过OPPO

代表机型:OPPOR9S

原生浏览器测试通过

QQ浏览器测试通过

360浏览器测试通过

UC浏览器测试通过

测试总结:

1.url我可以随便拼装

2.UC,QQ,原生都可以拉起应用

3.每次更新app都需要重新上传一个app到你们那里

4.加固混淆不影响该功能

总结:

1.基本满足了我们的需求

2.我们每次更新版本需要提交到 openInstall的后台托管中(保证后续更新稳定),也可以直接托管到应用宝等平台,这样在鹅厂旗下的浏览器会提供支持(微信内置浏览器)

android app邀请码,还在用邀请码邀请注册吗?落后咯!!!我家APP自带邀请码的相关推荐

  1. 还在用邀请码邀请注册吗?落后咯!!!我家APP自带邀请码的

    前言 来来来,假设有这样一个场景,我邀请某人去下载注册一个app,这样他能获得奖励,我也可以获得奖励,那怎么匹配邀请人与被邀请人呢?那你肯定要说了,这还不简单,邀请码啊,每个用户有自己唯一的邀请码,被 ...

  2. 直播带货源码,Android中直播视频技术探究

    一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...

  3. 借贷宝详细注册步骤:邀请朋友送20元,朋友再邀请朋友还送你10元【3天已赚6千】(附我的邀请记录和提现到账截图)...

          九鼎8月8日开始正式推广"借贷宝",推广费用为20亿.按照熟人带熟人的模式推广:A带B.B带C.C带D --依次类推,呈病毒式传播.无论谁只要通过扫描上一级人员的二维码 ...

  4. 阿里云网盘注册邀请码怎么获得,阿里云网盘注册邀请码获得内测方法

    阿里云网盘注册邀请码怎么获得,阿里云网盘注册邀请码获得方法 阿里云网盘注册邀请码怎么获得?近日阿里云网盘app上线,但由于还在内测,暂时是采用的是邀请方式注册登录的,所以想要使用的玩家需要拥有注册邀请 ...

  5. android 截屏需要权限,安卓App要权限还会偷删截屏?专治流氓App神器

    [PConline 应用]最近某APP删除用户相册里保存的截图事件闹得沸沸扬扬的,先不管这到底是不是有意而为还是bug,就拿许多APP来说,在用户手机里胡作非为.乱要权限的情况实在太多,用户该怎么办? ...

  6. (H5+安卓+ios)直播app系统源码,直播商城带货源码,方维直播app系统,直播短视频源码

    商品介绍 (H5+安卓+ios)直播app系统源码,直播商城带货源码,方维直播app系统,直播短视频源码,本系统有三个版本:带商城直播系统,带H5直播系统,和一般的直播短视频系统,默认带H5版本系统 ...

  7. 【Android 安全】DEX 加密 ( 多 DEX 加载 | 65535 方法数限制和 MultiDex 配置 | PathClassLoader 类加载源码分析 | DexPathList )

    文章目录 一.65535 方法数限制和 MultiDex 配置 二.多 DEX 加载引入 三.PathClassLoader 类加载源码分析 四.BaseDexClassLoader 类加载源码分析 ...

  8. Android官方开发文档Training系列课程中文版:管理音频播放之控制APP的音量与播放

    原文地址:http://android.xsoftlab.net/training/managing-audio/index.html 引言 如果APP需要播放音频,允许用户可以控制音频的播放状态是很 ...

  9. 毕业季基于spring的基于安卓APP的基于ssm框架的基于微信小程序的管理系统设计与开发(开题+源码+讲解+论文)

    毕业设计考察的是同学的专业知识的运用能力,除了对技能的考核,还看重你的创新思维,这里面设计到内容繁琐复杂. 对于还未毕业没有过项目开发经验的同学是有些难度的,一个程序的开发小到1两个月,大至几个月甚至 ...

  10. 直播带货源码,Android Studio购买售卖系统

    直播带货源码,Android Studio购买售卖系统实现的相关代码 ShopActivity package com.example.tryfirst;import android.content. ...

最新文章

  1. android任务管理,安卓下载任务管理
  2. 七天学习计划_c#_[2][3][4][5]委托、事件、委托与事件的区别、泛型委托、Func\Action\predicate
  3. 100c之36:不同鸡的数量
  4. C++ 区分中文,非中文,截取含有中文的string字符串的两种方法
  5. Linux中防火墙(一)
  6. 弹出对话框提示输入_每日一贴——如何关闭CAD的各种提示信息和对话框?
  7. numpy 数组抽取_Python 关于NumPy的用法介绍
  8. 如何安装 SAP Commerce Cloud,以便让 SAP Spartacus 使用
  9. python 制作二进制文件数据集(bin)
  10. [水池] 灌水专用:搜狗输入法里收集的纯文字表情
  11. 移动端实现标题文字的截断
  12. 使用HTML图片热区area map制作区域地图的选择高亮效果
  13. 当我们在浏览器地址栏中输入一个网址会发生什么
  14. 计算机实验环境怎么写visual,visualfoxpro计算机实验报告答案
  15. 关于城市旅游的HTML网页设计 HTML+CSS+JS学生旅游网页设计与实现
  16. 中国人正在上的四个大当 看你到底上了几个了?
  17. 按摩新方法(辅助药物治疗肝,肾,肺等慢性疾病)
  18. 【翻译】Chromium 网络栈 disk cache 设计原理
  19. 任正非详解华为不上市与家人不接班问题
  20. 解决MATLAB绘图延迟问题的一种方法

热门文章

  1. Linux的常见的发行版以及不同发行版之间的联系与区别
  2. mcgscom口针脚定义_COM口针脚定义
  3. off cpu linux,宋宝华: 用off-cpu火焰图进行Linux性能分析
  4. 计算机dos命令大全TXT,dos命令大全常见命令图解
  5. html中字体 楷体_css怎么设置字体为楷体?
  6. List集合排序总结
  7. 安装MySQL+Navicat(提供安装包下载地址)
  8. X64Dbg手动去WinRAR广告
  9. 全民奇迹辅助制作视频教程
  10. 用usboot制作启动U盘