ionic4调用手机内部App

ionic4调用手机内部App

ionic3升级为ionic4,有许多地方发生了重大的改变,由于现在ionic4还在处于bate版本,所以有很多地方还没有进行完善,现在就来讲一下在ionic4-bate版本中如何进行手机内部APP的调用功能。

一、安装可检测 APP 是否安装的插件

npm install –save @ionic-native/app-availability
ionic cordova plugin add cordova-plugin-appavailability –save

注意:@ionic-native/app-availability的版本一定要是5.0.0-beta.15版本的(你可以在package.json中手动的将版本改为”5.0.0-beta.15”,因为我们要让安装的app-availability包含ngx这个文件夹)
ionic4调用手机内部App_第1张图片

二、安装可调用打开手机内部APP的插件

cordova plugin add https://github.com/lampaa/com.lampa.startapp.git

三、引入到 app.module.ts

import { AppAvailability } from '@ionic-native/app-availability/ngx';
···
providers: [
    ...AppAvailability
]

四、以 home.ts 为例

import { Platform } from '@ionic/angular';
import { AppAvailability } from '@ionic-native/appavailability/ngx';

@Component({
    selector: 'app-Home',
    templateUrl: 'Home.page.html',
})

export class Home {
    scheme = [];
    plat: any;
    constructor(
        private appAvailability: AppAvailability, 
        private platform: Platform
    ) { }

    checkApp() {
        if (this.platform.is('ios')) {
            /* 高德地图的Scheme URL */
            this.scheme  = 'iosamap://';
            this.plat = 'ios';      
        } else if (this.platform.is('android')) {
            /* 高德地图的安卓包名 */
            this.scheme = 'com.autonavi.minimap'; 
             this.plat = 'and';    
        }
         const uri = this.plat === 'ios' ? ('iosamap://navi?sourceApplication=&lat=116.279153&lon=39.998946&dev=0&style=2'): ('amapuri://route/plan/?dlat116.279153&dlon=39.998946&dname=北京市海淀区&dev=0&t=0');

        /* 检测高德地图是否安装在手机上 */
        this.appAvailability.check(this.scheme)    
        .then(
            (yes: boolean) => {
                 /* 已安装,打开高德地图 */ 
                 const sApp = startApp.set({
                  'action': 'ACTION_VIEW',
                  'category': 'CATEGORY_DEFAULT',
                  'type': 'text/css',
                  'package': this.scheme,
                  'uri': uri,
                  'flags': ['FLAG_ACTIVITY_CLEAR_TOP', 'FLAG_ACTIVITY_CLEAR_TASK'],
                  'intentstart': 'startActivity'
                });
            },
            (no: boolean) => {
                /* 未安装,请编写提示代码或跳转下载 */
            }
        );
    }
}

你可能感兴趣的:(ionic)