z***@qq.com
z***@qq.com
  • 发布:2018-09-25 14:19
  • 更新:2018-11-20 16:24
  • 阅读:3956

Manifest.json文件中完整配置URLSchemes的方法?

分类:MUI

Manifest.json文件中有办法完整的配置Android的URLschemes吗?现阶段,我的项目需要从外部网页跳转到APP的一个指定页面(类似于从京东的分享页面中跳转到商品的详情页)。在原生Android中,指定页面的跳转,是通过设置AndroidManifest.xml中activity实现了,在mui框架中,应如何实现该步骤呢?目前我了解到的信息是,mui只能唤醒app,但好像无法做到指定页面的跳转。

2018-09-25 14:19 负责人:无 分享
已邀请:
Trust

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

5***@qq.com

5***@qq.com

你好!A 应用唤醒 B 应用,是不是配置好schemes,然后另一个APP写个<a href="test://abc">test:<a><br/>就可以了,但我试了不可以,方便请教你吗

  • 1***@qq.com

    你好,我想问下,我配置好了schemes后,我的他跳转超链接为什么不起作用。abc指的是html页面吗?

    2018-12-06 10:57

该问题目前已经被锁定, 无法添加新回复