Manifest.json文件中有办法完整的配置Android的URLschemes吗?现阶段,我的项目需要从外部网页跳转到APP的一个指定页面(类似于从京东的分享页面中跳转到商品的详情页)。在原生Android中,指定页面的跳转,是通过设置AndroidManifest.xml中activity实现了,在mui框架中,应如何实现该步骤呢?目前我了解到的信息是,mui只能唤醒app,但好像无法做到指定页面的跳转。
z***@qq.com
- 发布:2018-09-25 14:19
- 更新:2018-11-20 16:24
- 阅读:4105
Trust - 少说废话
在 5+ 环境下实现类似“直达”的需求,需要在入口页面中读取 scheme 中的参数信息,然后决定下一步的行为。
比如,A 应用唤醒 B 应用,实现直接打开 B 应用的详情页。
A 应用中使用的地址为:shopapp://detail?id=123。
B 应用入口页中处理直达部分的代码为:
var argRegexp = /([^&=]+)=?([^&]*)/g;
var parseArgs = function(queryString) {
if (queryString) {
var args = {};
var e;
while (e = argRegexp.exec(queryString)) {
args[decodeURIComponent(e[1])] = decodeURIComponent(e[2]);
}
return args;
}
return false;
};
var handleArgs = function(args) {
if (args) {
return args.replace(/.*\?/, '')
}
return false;
};
var plusReady = function(callback) {
if (window.plus) {
callback();
} else {
document.addEventListener('plusready', callback);
}
};
plusReady(function() {
var args = parseParams(handleArgs(plus.runtime.arguments));
if (args) {
switch (args.action) {
case 'detail':
//TODO 跳转到详情页
break;
}
}
});
另外,最好是在 manifest.json 中将启动图调整为手动关闭,这样通过 scheme 唤醒时,在详情页中主动调用 API 关掉 splahsh,用户不会先看到首页。
参考文档:
z***@qq.com (作者)
您好,您说的这种方式,在当前系统没有启动目标app的情况下,因为入口页面一定,可以完美实现指定页面的直达跳转。但若是在当前系统之中,已经启动了目标app,app在后台运转,却不知道app当前打开的具体页面时(即我不知道入口页面时),该怎么实现直达页面的跳转呢?
2018-09-25 15:20
Trust
回复 z***@qq.com:http://www.html5plus.org/doc/zh_cn/events.html
2018-09-25 15:57
z***@qq.com (作者)
回复 Trust:以事件监听的方式进行的话,那是不是APP中每一个页面都需要添加对应的事件监听?还是说有办法直接进行全局的事件的监听?我不是很懂您的意思,您是要我添加使用哪一个事件监听完成页面跳转?
2018-09-25 16:30
Trust
回复 z***@qq.com:监听应用从后台切换到前台的事件,在首页注册监听即可。
2018-09-25 16:35
z***@qq.com (作者)
明白了,谢谢解答,我试试
2018-09-25 16:36