如何从ionic4应用程序启动外部应用程序

时间:2019-02-11 14:22:32

标签: android cordova ionic-framework ionic-native webintents

我的应用程序适用于Android的Ionic 4,并且我必须打开/运行/启动外部应用程序(例如com.google.android.youtube或com.sygic.truck)->例如,所有已安装的应用程序。

我测试了许多选项,但都没有成功:

InAppBrowserModule(使用application://my.package.name)。

Cordova插件lampaa(在angular / ts应用类型下,我找不到任何使用方式)。

我还尝试了使用包选项和操作选项调用主活动的webIntent。


对于InAppBrowserModule,我在应用程序URL之前附加了http://协议。

对于Lampaa,我陷入了未定义的startApp(甚至在遵循其他线程建议之后)。

对于webIntent,我认为这与我的问题无关。

有什么建议吗?

谢谢!


[编辑]

我终于做到了!

您可以使用以下两行之一:

 this.iab.create('android-app://com.google.android.youtube',"_system");

 window.open('android-app://com.google.android.youtube',"_system");

您可以将com.google.android.youtube替换为任何应用程序包名称!

3 个答案:

答案 0 :(得分:1)

您可以使用以下cordova插件来检查是否安装了其他应用程序并启动它们。

ionic cordova插件添加cordova-plugin-app-launcher

npm install @ ionic-native / app-launcher

Simple Cordova plugin to see if other apps are installed and launch them.

答案 1 :(得分:0)

对于离子4,我们可以使用

ionic cordova plugin add cordova-plugin-app-launcher
npm install @ionic-native/app-launcher

答案 2 :(得分:0)

您可以检查用户是否在Android上,是否已安装该应用,然后按以下步骤打开它:

constructor(
   private platform: Platform,               // from 'ionic-angular'
   private appAvailability: AppAvailability, // from '@ionic-native/app-availability'
   private iab: InAppBrowser,                // from '@ionic-native/in-app-browser'
) {}

openYoutube() {
   const package = "com.google.android.youtube"
   if(this.platform.is('android')) {
      this.appAvailability.check(package)
         .then(()=> {
            this.iab.create('android-app://'+package, '_system', 'location=yes')
         })
         .catch(()=> {
            // not installed
         )
   } else {
      // not on Android
   }
}