我的应用程序适用于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替换为任何应用程序包名称!
答案 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
}
}