uniapp怎么启动手机内部软件?

uniapp微信小程序怎么打开手机里装的软件?

对的,App可以内嵌小程序,小程序不能掀起App

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

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

    • isApplicationExist

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

      //Boolean
      plus.runtime.isApplicationExist(appInf);
      
      • 1
      • 2

      说明:

      如果第三方程序已安装则返回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 : 无
  • 因为我最近在做一个关于食品播放类型的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://'  
        }  
    ]