Android使用scheme跳转App并传值

作者: 奔跑吧李博 | 来源:发表于2020-05-28 11:45 被阅读0次

    气死我了,上才艺:

    该效果是A应用使用scheme方式调起B应用,并且在B应用中获取到A应用传来的信息。

    使用场景

    第一种是通过Intent使用类的路径名进行跳转,第二种就是通过scheme方式跳转了。那scheme跳转可以使用在哪些场景下呢?可以有如下场景:

    • 当应用受到推送通知,点击通知跳转到App指定页面,比如推送新闻,点击就进入到该条新闻详情页。
    • 从一个应用跳转到另一个兄弟应用。
    • H5页面中,在事件中通过scheme跳转到app指定页面,比如在H5分享页面中,可以直接打开该App的对应页面。

    规则介绍

    scheme使用的Uri的拼接规则,形如 scheme://authority/path?param1&params2
    这里scheme和authority是必须要有,其余可以没有,params为各个键值对参数。
    具体例如:myscheme://domain/path?type=0&content=12345678

    上面演示demo代码如下:

    1.创建A应用,在webview中加载如下最简单的文件名为html.html页面,将html文件放assets目录下,通过webView.loadUrl("file:///android_asset/html.html")加载。
    <html>
        <head>
            <meta http-equiv="Content-Type" charset="UTF-8"/>
        </head>
    
        <body>
            <div>
                <a href="myscheme://domain/path?type=0&content=12345678">这里是A应用,跳转到B应用</a>
            </div>
    
        </body>
    </html>
    
    2.创建需要被调起B应用,在需要被调起的Acitivity的manifest文件中加入如下intent-filter内容(myscheme名称是自己随意定制)。到这里点击超链接就能A调起B了。
                <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="myscheme" />
    
    3.在B应用中获取scheme传递的参数内容

    在被调起的目标Activity中的onCreate方法中,通过

    getIntent().getDataString()
    

    获取整个Uri的内容,然后根据所需截取参数值。

    相关文章

      网友评论

        本文标题:Android使用scheme跳转App并传值

        本文链接:https://www.haomeiwen.com/subject/fkydictx.html