当前位置: 首页 > news >正文

Android开发 Firebase动态链接打开APP

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前言:

最近项目需要实现Firebase动态链接打开APP的功能。动态链接打开APP,就是用户在Android应用打开一个动态链接,则可以直接转到我们原生应用中的链接内容,如果用户尚未安装我们的应用程序,系统会将其转到 Play 商店或 App Store来安装我们的应用程序;安装后,该应用程序就会启动并可以访问该链接。

思路:

1.设置 Firebase 和 Dynamic Links SDK;
2.创建动态链接;
3.接收动态链接。

实现的代码:

1.Google官网注册应用

   首先去网址:https://console.firebase.google.com/ 去注册自己的应用,并下载google-services.json的文件,把它放到自己项目的app/目录。

2.添加依赖

 Module的build.gradle

 dependencies {
    //Add Dynamic Links SDK,跟其他Firebase的版本一致
    implementation 'com.google.firebase:firebase-invites:11.0.4'        
  }

3.在Firebase控制台创建动态链接

3.1 设置短链接地址

3.2 设置动态链接

3.3 在Android应用打开深层链接

3.4 点击创建,完成在Firebase控制台创建动态链接

4.配置AndroidMenifest.xml文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="项目包名">

    <!--连接网络权限-->
    <uses-permission android:name="android.permission.INTERNET" />
   
    <application
        android:name="Application包名"
        android:allowBackup="true"
        android:icon="@drawable/app_icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
         <!--首先需要配置打开某个APK的一个意图事件,一般都是在Lanucher的Activity下配置另外个filter-->
        <activity
            android:name="Lanucher的Activity"
            android:launchMode="standard"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:host="动态链接域名" android:scheme="http"/>
                <data android:host="动态链接域名" android:scheme="https"/>
            </intent-filter>
        </activity>
       
    </application>

</manifest>

5.在Lanucher的Activity接收动态链接

public class LanucherActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lanucher);
        getDeepLink();//获取动态链接
    }

    private void getDeepLink() {
        try {
            Intent intent = getIntent();
            String data = intent.getDataString();
            //判空,并处理动态链接
            if (data != null && data.equals("短链接")) {
                startActivity(new Intent(this, 要跳转的页面));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

6.总结

Firebase动态链接打开APP的简单功能已经实现啦,后面还会把复杂的功能加进来的,欢迎大家围观哟!

转载于:https://my.oschina.net/wupeilin/blog/1845879

相关文章:

  • js进阶 12-18 jquery如何实现自定义右键菜单(把问题分细)
  • 数据结构之串
  • Linux命令三剑客
  • 我的免费静态博客
  • 崛起于Springboot2.X之配置文件详解(10)
  • Dijkstra算法 C++
  • 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
  • Oracle学习笔记——imp还原数据库
  • Nginx proxy pass路由转发简单用法
  • [译]D3.js 之 d3-selection 原理
  • 高并发和大流量解决方案--数据库缓存
  • js将日期格式转换为YYYY-MM-DD HH:MM:SS
  • 给 smox 加上翅膀,不断进步的 react 状态管理
  • expect(spawn) 自动化git提交和scp拷贝---centos(linux)
  • new和delete
  • (三)从jvm层面了解线程的启动和停止
  • JavaScript新鲜事·第5期
  • js数组之filter
  • overflow: hidden IE7无效
  • Python语法速览与机器学习开发环境搭建
  • Spring Boot快速入门(一):Hello Spring Boot
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 程序员该如何有效的找工作?
  • 初识MongoDB分片
  • 创建一种深思熟虑的文化
  • 说说动画卡顿的解决方案
  • 详解NodeJs流之一
  • 一、python与pycharm的安装
  • 一个JAVA程序员成长之路分享
  • 移动端高清、多屏适配方案
  • #100天计划# 2013年9月29日
  • ${factoryList }后面有空格不影响
  • (06)Hive——正则表达式
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二)hibernate配置管理
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理出现中文乱码的情况
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net core使用ef 6
  • .NET Micro Framework 4.2 beta 源码探析
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @test注解_Spring 自定义注解你了解过吗?