android - 如何从 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 替换为任何应用程序包名称!
解决方案
您可以检查用户是否在 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
}
}
推荐阅读
- javascript - 嵌套数组中的操作
- matlab - 如何在 Matlab 图形中添加工具提示或覆盖文本
- android - 如何以编程方式更改 colors.xml 的值?
- sql-server - 使用 xp_retore_database / SQL Server 进行缓慢还原
- python - 根据条件检查修改循环
- css - 如何在div上创建悬停动画
- asp.net - Azure 应用服务部署中心无法从 GitHub 存储库部署
- hibernate - 使用负载平衡扩展金融应用程序
- python - 在字典中设置值的pythonic方法
- gradle - 403 您无权执行促销 'snapshotToRelease'