android deep links即scheme uri跳转以及googlePlay跳转配置

请添加图片描述

对于googlePlay的Custom URL就是googlePlay上APP网址:
https://play.google.com/store/apps/details?id=com.yourapp

如果是国内一些应用,则考虑market://包名等方式,自行百度。

对于Android URI Scheme

首先需要在Manifest xml中定义:

<activityandroid:name="com.your.SplashActivity"...><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:scheme="myapp" android:host="app"/></intent-filter></activity>

值得一提的是,作为启动应用,你必须分割开两个intent-filter,否则就会导致应用icon不见。而且BROWSABLE必须保证action和2个category。

测试方法
1. 写代码:
startActivity(Intent(Intent.ACTION_VIEW,Uri.parse("myapp://app")).also { it.flags = it.flags or Intent.FLAG_ACTIVITY_NEW_TASK })
2. adb命令:
adb shell am start -W -d "myapp://app"
3. webView支持:

html中添加:

<a href="myapp://app">跳转至MyApp</a>

对于真实的前端配置好以后,使用标准的浏览器去打开,是不会有问题的。
因为它肯定实现了类似下面的代码。

自定义WebView中,点击网页中链接进行跳转,出现err_unknown_url_scheme
解决办法,给WebViewClient添加如下代码:

public boolean shouldOverrideUrlLoading(WebView view, String url) {boolean schemeUri = true; //可以额外定制代码,进行判断return schemeUri && this.overrideUrlLoadUrl(view, url) ? true : super.shouldOverrideUrlLoading(view, url);
}public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {String uri = request.getUrl().toString();boolean schemeUri = true; //可以额外定制代码,进行判断return schemeUri && !uri.isEmpty() && this.overrideUrlLoadUrl(view, uri) ? true : super.shouldOverrideUrlLoading(view, request);
}private boolean overrideUrlLoadUrl(WebView view, @NonNull String url) {if (!url.contains("http://") && !url.contains("https://")) {startActivity(view, url);return true;} else {view.loadUrl(url);return false;}
}static void startActivity(WebView view, @NonNull String url) {startActivity(view, Uri.parse(url));
}static void startActivity(WebView view, @NonNull Uri uri) {Intent intent = new Intent("android.intent.action.VIEW", uri);try {view.getContext().startActivity(intent);} catch (Exception var6) {intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);try {view.getContext().startActivity(intent);} catch (Exception var5) {Exception e2 = var5;e2.printStackTrace();}}}

参考:
https://developer.android.com/training/app-links/deep-linking?hl=zh-cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第2章大话 ASP.NET Core 入门

1.什么是ASP.NET Core框架 ASP.NET Core是一个超级棒的框架&#xff0c;它是免费的&#xff0c;你可以在任何主流的系统上&#xff0c;比如Windows、Linux或macOS上使用它&#xff0c;而且它是完全开放源代码的&#xff0c;意味着你可以看到并修改它的内部代码。这个框架是专门…

浅尝Apache Mesos

文章目录 1. Mesos是什么2. 共享集群3. Apache Mesos3.1 Mesos主节点3.2 Mesos代理3.3 Mesos框架 4. 资源管理4.1 资源提供4.2 资源角色4.3 资源预留4.4 资源权重与配额 5. 实现框架5.1 框架主类5.3 实现执行器 6. 小结参考 1. Mesos是什么 Mesos是什么&#xff0c;Mesos是一个…

如何更好地对接第三方数据库

在现代企业信息化建设中&#xff0c;对接第三方数据库是一个常见且重要的任务。无论是为了单据录入还是报表统计&#xff0c;确保对接过程的顺利进行对于业务运转至关重要。本文将详细介绍如何更好地对接第三方数据库&#xff0c;涵盖命名方式、业务理解和数据对接的具体步骤。…

【国产AI绘图】快手把“可图”大模型开源了,这是一款支持中文的SDXL模型

Kolors 是由 Kuaishou Kolors 团队&#xff08;快手可图&#xff09;开发的基于潜在扩散的大规模文本到图像生成模型。经过数十亿对文本图像的训练&#xff0c;Kolors 在视觉质量、复杂语义的准确性以及中英文字符的文本渲染方面&#xff0c;与开源和专有模型相比都具有显著优势…

SQLAlchemy迁移数据库

SQLAlchemy迁移数据库 目录 SQLAlchemy迁移数据库安装Alembic配置Alembic编辑 alembic.ini编辑env.py生成迁移文件建表语句示例修改迁移文件命名格式 安装Alembic pip install alembic配置Alembic 执行初始化后会创建一个 alembic 目录&#xff0c;包含Alembic的配置文件 ale…

Linux中C语言指针的意义及高级用法

引言 指针是C语言中一个重要的特性&#xff0c;它为程序提供了强大的功能和灵活性。指针在内存管理、数据结构、函数参数传递等方面发挥着关键作用。本文将深入探讨C语言指针的意义及其在Linux环境中的一些高级用法。 一、指针的基本概念 指针是存储内存地址的变量。它指向存…

MSPM0G3507——外部中断测编码器数据

方式1&#xff1a;单相 void GROUP1_IRQHandler(void) //编码器的中断函数 {uint32_t gpioA DL_GPIO_getEnabledInterruptStatus(GPIOA, GPIO_Encoder_PIN_Back_Left_A_PIN | GPIO_Encoder_PIN_Back_Right_A_PIN );if (gpioA & GPIO_Encoder_PIN_Bac…

基础权限储存

一、要求&#xff1a; 1、建立用户组shengcan&#xff0c;其id为2000工 2、建立用户组 caiwu&#xff0c;其id为2001 3、建立用户组 jishu&#xff0c;其id 为 2002 4、建立目录/sc,此目录是 shengchan 部门的存储目录&#xff0c;只能被 shengchan 组的成员操作,其他用户没有…

笔记:Newtonsoft.Json 自定义序列化反序列化规则

使用 Newtonsoft.Json&#xff0c;你可以在类内部自定义序列化和反序列化规则。这通常通过实现 JsonConverter 抽象类来完成。自定义转换器允许你控制类的序列化和反序列化行为&#xff0c;使你能够处理复杂的场景&#xff0c;比如序列化第三方库的对象&#xff0c;或者处理不支…

Hi6276 无Y应用电源方案IC

Hi6276 combines a dedicated current mode PWM controller with integrated high voltage power MOSFET.Vcc low startup current and low operating current contribute to a reliable power on startup design with Hi6276. the IC operates in Extended ‘burst mode’ to …

【初中数学选讲】绝对值的几何意义例题(20240503-01)

初中数学选讲&#xff1a;绝对值的几何意义例题&#xff08;20240503-01&#xff09; 1. 练习题目1.1 题目描述1.2 分析 2 答题2.1 定义2.2 分段讨论2.2.1 情况1&#xff1a; x x x点在 a a a点左侧&#xff08; x < a , m ∣ x − a ∣ x<a,\ \ m\left|x-a\right| x<…

六、数据可视化—首页、列表页制作(爬虫及数据可视化)

六、数据可视化—首页、列表页制作&#xff08;爬虫及数据可视化&#xff09; 1&#xff0c;首页制作&#xff08;1&#xff09;创建新项目选择flask框架&#xff08;2&#xff09;下载模板&#xff08;3&#xff09;导入flask框架中进行改写&#xff08;4&#xff09;访问服务…

回溯算法-以景点门票销售管理系统为例

1.回溯算法介绍 1.来源 回溯算法也叫试探法&#xff0c;它是一种系统地搜索问题的解的方法。 用回溯算法解决问题的一般步骤&#xff1a; 1、 针对所给问题&#xff0c;定义问题的解空间&#xff0c;它至少包含问题的一个&#xff08;最优&#xff09;解。 2 、确定易于搜…

【论文阅读】-- Visual Analytics for Model Selection in Time Series Analysis

时间序列分析中模型选择的可视化分析 摘要1 引言2 相关工作3 问题表征3.1 Box-Jenkins 方法论3.2 ARIMA 和季节性 ARIMA 模型3.3 模型规范3.4 模型拟合3.5 模型诊断 4 需求分析5 VA 用于时间序列分析中的模型选择5.1 VA选型流程说明5.2 TiMoVA 原型5.2.1 实施选择5.2.2 图形用户…

java map对象格式化为json对象

在Java中&#xff0c;将Map对象转换为JSON对象通常是通过使用诸如Jackson、Gson这样的库来完成的。 下面是使用这两个库进行转换的示例&#xff1a; 一、使用Jackson库 首先&#xff0c;确保项目中已经添加了Jackson的依赖。 Maven示例依赖如下&#xff1a; <dependency&…

【在Linux世界中追寻伟大的One Piece】HTTPS协议原理

目录 1 -> HTTPS是什么&#xff1f; 2 -> 相关概念 2.1 -> 什么是"加密" 2.2 -> 为什么要加密 2.3 -> 常见的加密方式 2.4 -> 数据摘要 && 数据指纹 2.5 -> 数字签名 3 -> HTTPS的工作过程 3.1 -> 只使用对称加密 3.2 …

C语言2 常量

整型常量 常量是指在程序运行期间其数值不发生变化的数据。整型常量通常简称为整数。 整数可以是十进制数、八进制数和十六进制数。 int a 0x12345678 浮点常量 浮点常量又称实数&#xff0c;一般含有小数部分。 在C语言中&#xff0c;实数只有十进制的实数&#xff0c;…

《linux系统内核设计与实现》-实现最简单的字符设备驱动

开发linux内核驱动需要以下4个步骤&#xff1a; 1 编写hello驱动代码 驱动代码如下 helloDev.c&#xff0c;这是一个最小、最简单的驱动&#xff0c;去掉了其他的不相干代码&#xff0c;尽量让大家能了解驱动本身。 #include <linux/module.h> #include <linux/mod…

导航栏样式,盒子模型

1.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>li{he…

MySQL5.7下载及安装详细教程

我下载的是MySQL 5.7.43 &#xff0c;以下是详细下载安装过程 一、下载过程步骤 1、进入官方网站&#xff1a;https://www.mysql.com/ 2、首页滑到最下面&#xff0c;找到MySQL Community server 3、选择你想要的版本和电脑对应配置进行下载 4、下载完后&#xff0c;保存解…