uniapp里面怎么打开第三方应用

  • 1.怎么在uniapp中使用api打开第三方软件呢?下面是我的做法,希望对大家有些帮助,话不多说,直接上代码。

    • html的代码如下,就是一个正常的点击事件
    <button type="default" @click="launchApp">打开第三方软件</button>
    
  • 2 .在这里提出几个uniapp里面的API(只有在app中可以使用,在小程序中使用会报错)

    • isApplicationExist

      判断第三方程序是否已存在

      //Boolean
      plus.runtime.isApplicationExist(appInf);
      

      说明:

      如果第三方程序已安装则返回true,未安装则返回false。

      参数:

      • appInf: ( ApplicationInf ) 必选 要判断第三方程序的描述信息

      返回值:

      • Boolean : 第三方程序已安装则返回true,否则返回false。

      示例:

      // 判断第三方程序(微信) 是否安装
      function checkApp(){
              
              		if(plus.runtime.isApplicationExist({
              
              pname:'com.tencent.mm',action:'weixin://'})){
              
              
      		console.log("微信应用已安装");
      	}else{
              
              
      		console.log("微信应用未安装");
      	}
      }
      
    • launchApplication

      调用第三方程序

      plus.runtime.launchApplication( appInf, errorCB )
      

      参数:

      • appInf:( ApplicationInf ) 必选 要启动第三方程序的描述信息
      • errorCB:( LaunchErrorCallback ) 必选 启动第三方程序操作失败的回调函数启动第三方程序失败时回调,并返回失败信息。

      返回值:

      • void : 无

      示例:

      function launchApp() {
              
              
      	if ( plus.os.name == "Android" ) {
              
              
      		plus.runtime.launchApplication( {
              
              pname:"com.android.browser"
      			,extra:{
              
              url:"http://www.html5plus.org"}}, function ( e ) {
              
              
      				alert( "Open system default browser failed: " + e.message );
      		} );
      	} else if ( plus.os.name == "iOS" ) {
              
              
      		plus.runtime.launchApplication( {
              
              action:"http://www.html5plus.org"}, function ( e ) {
              
              
      			alert( "Open system default browser failed: " + e.message );
      		} );
      	}
      }
      
      
    • openURL

      调用第三方程序打开指定的URL

      void plus.runtime.openURL( url, errorCB, identity );
      

      参数:

      • url:( String ) 必选 要打开的URL地址字符串类型,各平台支持的地址类型存在差异,参考平台URL支持表。
      • errorCB:( OpenErrorCallback ) 可选 打开URL地址失败的回调打开指定URL地址失败时回调,并返回失败信息。
      • identity:( String ) 可选 指定打开URL地址的程序名称在iOS平台此参数被忽略,在Android平台为程序包名,如果指定的包名不存在,则打开URL地址失败。

      返回值:

      • void : 无
    1. 因为我最近在做一个关于食品播放类型的app,牵扯到了腾讯会议app,所以我在这里以腾讯会议做例子

      //判断app是否已经安装 
      checkApp() {
              
              
            if (plus.runtime.isApplicationExist({
              
               pname: 'com.tencent.wemeet.app' })) {
              
              
              uni.showToast({
              
              
                title: '腾讯会议已经安装'
              });
            } else {
              
              
              uni.showToast({
              
              
                title: '腾讯会议没有安装'
              });
            }
          }
      
      
      // 点击事件
        launchApp() {
              
              
            if (plus.os.name == 'Android') {
              
              
                if(this.checkApp()){
              
              
                    plus.runtime.launchApplication({
              
               pname: 'com.tencent.wemeet.app' }, 			function(e) {
              
              
                alert('Open system default browser failed: ' + e.message);
              });
                   }
             
            }
          },
      
      
  • 4.常用的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://'  
        }  
    ]
    

猜你喜欢

转载自blog.csdn.net/weixin_45356397/article/details/106647784