uni-app中打开外部应用 plus.runtime.openURL

我们在开发 App 应用中,经常会遇到打开第三方程序的场景,比如打开手机淘宝、通过第三方浏览器打开一个 url 等等。

App不像网页可以使用http超链接互相跳转,但手机os设计了scheme机制,可以通过特殊的链接互相调起。

比如手机淘宝,其安装后会在手机os中会注册一个scheme协议,taobao://。

这种协议还支持参数,比如taobao://s.taobao.com/search?q=uni-app启动淘宝并打开搜索页面搜索uni-app。

在uni-app/5+App中,可以通过scheme呼起其他App,也支持给自己的App设置scheme参数。

这个功能小程序并不支持,属于App端的扩展API。

打开外部scheme的API是plus.runtime.openURL()。

查看文档:HTML5+ API Reference

打开第三方程序

打开第三方程序,我们需要使用 runtime 模块,下面我罗列两个相关的方法。其他操作请详读文档。

plus.runtime.openURL( url, errorCB, identity );  
  • url: ( String ) 必选 要打开的URL地址
    字符串类型,各平台支持的地址类型存在差异,参考平台URL支持表。

  • errorCB: ( OpenErrorCallback ) 可选 打开URL地址失败的回调
    打开指定URL地址失败时回调,并返回失败信息。

  • identity: ( String ) 可选 指定打开URL地址的程序名称
    在iOS平台此参数被忽略,在Android平台为程序包名,如果指定的包名不存在,则打开URL地址失败。

      
    
      
    

    2,调用第三方程序

    plus.runtime.launchApplication( appInf, errorCB );  
    

    appInf: ( ApplicationInf ) 必选 要启动第三方程序的描述信息

  • errorCB: ( LaunchErrorCallback ) 必选 启动第三方程序操作失败的回调函数

  • 启动第三方程序失败时回调,并返回失败信息。

          
    
      
    

    常用URLscheme

  • [  
        // 只在 ios 中生效  
        {  
            name: 'App Store',  
            scheme: 'itms-apps://'  
        },  
        {  
            name: '支付宝',  
            pname: 'com.eg.android.AlipayGphone',  
            scheme: 'alipay://'  
        },  
        {  
            name: '淘宝',  
            pname: 'com.taobao.taobao',  
            scheme: 'taobao://'  
        },  
        {  
            name: 'QQ',  
            pname: 'com.tencent.mobileqq',  
            scheme: 'mqq://'  
        },  
        {  
            name: '微信',  
            pname: 'com.tencent.mm',  
            scheme: 'weixin://'  
        },  
        {  
            name: '京东',  
            pname: 'com.jingdong.app.mall',  
            scheme: 'openApp.jdMobile://'  
        },  
        {  
            name: '新浪微博',  
            pname: 'com.sina.weibo',  
            scheme: 'sinaweibo://'  
        },  
        {  
            name: '优酷',  
            pname: 'com.youku.phone',  
            scheme: 'youku://'  
        }  
    ] 
    

    更多实用例子

    除了简单的打开App,我们更多的时候想要直达。这里汇总了很多有用的直达案例:

  • 使用应用商店打开指定App,可用于引导评分
  • 强制使用应用宝打开指定App
  • 打开淘宝搜索页面。需要你要做淘宝客,需要向淘宝申请自己的scheme参数并传入。
  • 打开地图并指定地点
  • 打开qq并到指定聊天界面,可用于客服
    具体代码见下:
      
    
      
      
    

    给自己的App设置scheme

  • 可在manifest中可配置。

你可能感兴趣的:(uni-app)