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地址失败。

    <template>  
           <view>  
               <button class="button" type="primary" @click="open(0)">使用第三方程序打开指定URL</button>  
           </view>  
       </template>  
    
    <script>  
    export default {  
       data() {  
           return {  
               url: 'https://uniapp.dcloud.io/'  
           };  
       },  
       onLoad(op) {},  
       methods: {  
           open(types) {  
                   plus.runtime.openURL(this.url, function(res) {  
                       console.log(res);  
                   });  
           }  
       }  
    };  
    </script>  
    

    2,调用第三方程序

    plus.runtime.launchApplication( appInf, errorCB );  
    

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

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

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

        <template>  
            <view>  
                <button class="button" type="primary" @click="launchApp">打开淘宝</button>  
            </view>  
        </template>  
    
    <script>  
    export default {  
        data() {  
            return {  
                url: 'https://uniapp.dcloud.io/'  
            };  
        },  
        onLoad(op) {},  
        methods: {  
            launchApp() {  
                let _this = this;  
                // 判断平台  
                if (plus.os.name =
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值