Android自定义schema,Android 自定义scheme及多端唤起使用方法

前言

DeepLink,深度链接技术,类似于web开发领域不仅仅是通过链接打开一个界面,而是打开界面的某个具体内容。常用于web端唤起app时,传递参数直接打开确定的界面,如通过京东的分享出去的商品详情页,实现在京东app中打开。

在移动开发领域,是指app在处理特定的url时能够直接跳转到对应的内容页面或者触发特定的逻辑。这样可以在web端切换app时通过参数传递保留了当前的上下文状态,又可以借用web端的优势,更利于传播,可利用搜索引擎的索引,增加app的日活和下载量等。

移动端实现deeplink于是就有了Universal Link、App Link、URL schemes等

Android配置scheme

如配置WebActivity完整的打开链接为openapp://test:8000/detail,需要在AndroidManifest.xml配置

android:host="test"

android:path="/detail"

android:port="8000"

android:scheme="openapp" />

android:scheme:协议名,类似于http

android:host:主机名,类似于locahost

android:port:端口名。类似于8080中的端口

android:path:路径名,类似于home

还可以配置imei等等。结构为://:/[||]

Android端调起

通过指定Intent的Action为Intent.ACTION_VIEW,传入解析的Uri

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("openapp://test:8000/detail?title=电视影音&url=https://u.jd.com/1dfFwO"));

startActivity(intent);

传递参数的方法跟web端一样,通过问号?分隔,参数名和值之间使用等号=连接,多个参数之间使用&拼接。

Android端参数接收

Uri uri = getIntent().getData();

if (uri != null) {

// 完整的url信息

String totalUrl = uri.toString();

Log.i(TAG, "完整url: " + totalUrl);

// scheme 协议

String scheme = uri.getScheme();

Log.i(TAG, "scheme: " + scheme);

// host 主机

String host = uri.getHost();

Log.i(TAG, "host: " + host);

//port 端口

int port = uri.getPort();

Log.i(TAG, "port: " + port);

// 访问路径

String path = uri.getPath();

Log.i(TAG, "path: " + path);

// 获取所有参数

String query = uri.getQuery();

Log.i(TAG, "query: " + query);

//获取指定参数值

String title = uri.getQueryParameter("title");

Log.i(TAG, "title: " + title);

String url = uri.getQueryParameter("url");

Log.i(TAG, "url: " + url);

}

唤起后可以看见打印的日志信息:

15705317238763.png

拿到参数之后就可以进行后续的使用操作啦

web端唤起

直接当做一个普通的连接形式,直接跳转

window.location = "openapp://test:8000/detail?title=电视影音&url=https://u.jd.com/1dfFwO";

或者设置超链接等待用户点击

在app中打开

💡 更多好文欢迎关注我的公众号~

wx_subscription.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值