uniapp 安卓在浏览器怎么根据 UrlSchemes 跳转到 app?

APP 需要打开浏览器调用一个第三方链接,并给第三方链接传递一个值为回调地址的参数,第三方链接会在执行后携带相关参数跳转到这个回调地址。

image.png

APP 常用其他设置中已经配置了 UrlScheme (如图),
scheme 既然是可以用于从浏览器或其他应用中启动本应用。那也就是可以利用scheme作为第三方链接的回调地址。但是这个地址应该怎么写呢?

或者说我现在已经有UrlScheme了,在浏览器中怎么通过这个UrlScheme 打开我的应用呢?查了几个网站,都说浏览器可以通过scheme打开应用,就是没有说怎么打开的。。。

image.pngimage.png
试了下直接在地址栏写scheme的值(就是截图里的 tongyongCMS 和 tongyongCMS://)都不能跳转,而是会到默认搜索引擎进行搜索。

有经验的前辈指教一下吧,不胜感激。

阅读 3.7k
2 个回答

//host可以不添加,但是作为更加详细的匹配,mimeType限制要打开的url后缀文件名 `xxx://aa/a.pdf

    <data android:scheme="xxx" android:host="aa" android:mimeType="application/pdf"/> 
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    </head>
    <body>
        <a href="xxx://aa?p=12&amp;d=1">test</a>
        //如果采用下面的格式来写,打开这个网页就会直接跳转到相对应的app,因为网页或者使用webview加载这个网页时,网页如果处理不了这个Uri,          会自动的调用发送Intent来调用能够处理该Uri的应用                                                             ```                           
    <iframe src="xxx://aa?p=12&amp;d=1" style="display:none"></iframe>
    </body>
</html>

首先,scheme 直接写在地址栏能不能跳转到app是和浏览器有关系的。via浏览器可以,谷歌不可以,谷歌会将地址栏中写的内容拿到默认的搜索引擎去进行搜索。
其次,scheme 中包括下滑线时,通过页面链接里的形式调用时,谷歌会爆401,via浏览器没有尝试。直接写在地址栏直接访问时,via也会像谷歌一样拿到搜索引擎去进行搜索。
最后,scheme 中如果包含大写字母时,通过页面链接里的形式调用时,谷歌可以调通,via浏览器没有尝试。写在地址栏直接访问时,via不会跳转,但也不会拿到默认搜索引擎去搜索,没有任何反应。

开发过程中没有找到相关文档,以上只是个人经过两天的尝试,自己总结出的一点点规律。有更了解这个问题的前辈欢迎指教

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题