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

标签 android cordova ionic-framework ionic-native webintents

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

最佳答案

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

关于android - 如何从 ionic4 应用程序启动外部应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632621/

相关文章:

android - ionic-plugin-keyboard 不会在 Android 上触发事件

javascript - Angular 在 Controller 的 .service 中获取 json 数据

ios - Ionic 4 禁用 iOS 仅在一页中滑动返回

angular - 无法解析 MyApp 的所有参数

java - NoClassDefFoundError 从 Java(Android、LibGDX)调用 Clojure

Android:DatePicker对话框主题

android - Libgdx中如何让actors一个接一个做特定的 Action

javascript - iPhone:Phonegap:后台播放音频

android - 如何使用 phonegap 在状态栏上创建通知

ios - iOS中浏览器的navigator.getUserMedia的 native 替代品是什么?