Xamarin.Forms 点击按钮怎么打开另外一个程序? 目前只知道另外程序的packname。求解决方案
3条回答 默认 最新
社区专家-Monster-XH 2023-05-15 10:03关注基于Monster 组和GPT的调写:
- 在 Android 中,用 Intent 来打开另一个应用。在 Xamarin.Forms 中,用 DependencyService 来调用 Android 特定的代码。
- 先要在你的 Xamarin.Forms 项目中创建一个接口。这个接口定义了你想要执行的操作。在你的情况下要创建一个如下的接口:
public interface IAppHandler { Task<bool> LaunchApp(string packageName); }然后在 Android 项目中实现这个接口:
[assembly: Xamarin.Forms.Dependency(typeof(AppHandler))] namespace YourNamespace.Droid { public class AppHandler : IAppHandler { public Task<bool> LaunchApp(string packageName) { bool result = false; Intent intent = Android.App.Application.Context.PackageManager.GetLaunchIntentForPackage(packageName); if (intent != null) { intent.AddFlags(ActivityFlags.NewTask); Android.App.Application.Context.StartActivity(intent); result = true; } return Task.FromResult(result); } } }最后在 Xamarin.Forms 中调用这个方法:
var appHandler = DependencyService.Get<IAppHandler>(); await appHandler.LaunchApp("com.yourpackage.name");- 这个代码会试启动一个特定包名的应用。如果设备上没有这个应用,或者这个应用没有主活动,
GetLaunchIntentForPackage将会返回 null,然后LaunchApp方法会返回 false。如果成功启动了应用,LaunchApp方法会返回 true。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用