首页 > 解决方案 > 如何从 ionic4 应用程序启动外部应用程序

问题描述

我的应用程序在 Ionic 4 for android 下,我必须打开/运行/启动外部应用程序(例如 com.google.android.youtube 或 com.sygic.truck)-> 例如,任何已安装的应用程序。

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

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

Cordova 插件 Lampaa(我没有找到任何在 angular/ts 应用类型下使用它的方法)。

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


对于 InAppBrowserModule,我坚持使用附加在我的应用程序 url 之前的 http://protocole。

对于 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 替换为任何应用程序包名称!

标签: androidcordovaionic-frameworkionic-nativewebintents

解决方案


您可以检查用户是否在 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
   }
}

推荐阅读