android程序内置浏览器,Android 应用程序与浏览器

首先需要明确一点基础概念

点我启动应用程序

在 AndroidManifest.xml 中对被启动的 Activity 进行配置

接着写出 Html 文件 Just.xml

启动 APP

无法启动

启动 APP1

启动 APP2

启动 APP3

启动 APP4

启动 APP5

在浏览器中打开 Html 文件,点击标签,就可以进行测试了

这里需要注意:

多个intent-filter是平级关系,如果嵌套在一起,会出现桌面没有 App 图标的情况

注意data标签中的scheme标签文本是不支持大写的

注意data标签中的host标签的使用

注意上边两个data标签不能放在一个intent-filter 中

在 Activity 中通过 intent 来获取数据

private HashMap browserMap = new HashMap<>();// 浏览器数据

/**

* 从浏览器获取数据[方法一]

*/

private void getParameterFromBrowser() {

Intent intent = getIntent();

Uri data = intent.getData();

if (data == null) return;

browserMap.put("scheme", data.getScheme());

browserMap.put("host", data.getHost());

Set queryParameterNames = data.getQueryParameterNames();

String[] queryParamNameArray = (String[]) queryParameterNames.toArray();

for (int i = 0; i < queryParamNameArray.length; i++) {

String key = queryParamNameArray[i];

browserMap.put(key, data.getQueryParameter(key));

}

}

在 Activity 中通过 intent 来获取数据

/**

* 从浏览器获取数据[方法二]

*/

private void getDataFromBrowser() {

Intent intent = getIntent();

String uri = intent.getDataString();

if (uri != null) {

String scheme = intent.getScheme();

String leave = uri.split(scheme + "://")[1];

String query;

if (leave.contains("?")) {

query = leave.split("\\?")[1];

} else {

query = leave;

}

browserMap = new HashMap();

String[] split = query.split("&");

for (int i = 0; i < split.length; i++) {

String key = split[i].split("=")[0];

String value = split[i].split("=")[1];

browserMap.put(key, value);

}

browserMap.toString();

}

}

注意: 这种方式是直接对从 xml 中获取到的启动字符串进行拆分截取从而获取到想要的数据,如果该串中包含了一个 url 的参数需要进行 URL 编码 否则解析会出现异常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值