如何解决没有自定义URI方案打开的Xamarin表单应用程序崩溃
我正在尝试通过发送到电子邮件的URI链接打开Xamarin表单应用。我已经在“ AndroidManifest.xml”中注册了一个URI方案,该方案转到OpenFromURIActivity.cs,然后它启动MainActivity。仅当该应用程序的一个实例已经打开并运行时,该代码才能正常工作,否则它将无法正常工作并在mainactivity中崩溃。这是我在MainActivity.cs中的代码。我检查“ intent.data”(URI数据)是否为空,然后继续加载app.cs,否则我将加载另一个名为“ AppOpenURI”的应用程序类。我的怀疑是它崩溃了,因为bundle在mainactivity中为空?请告知。
public class OpenFromURIActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
try
{
base.OnCreate(savedInstanceState);
var mainActivityIntent = new Intent(Application.Context,typeof(MainActivity));
mainActivityIntent.AddFlags(ActivityFlags.NewTask);
mainActivityIntent.SetData(Intent.Data);
StartActivity(mainActivityIntent);
}
catch (Exception ex)
{
var properties = new Dictionary<string,string> {
{ "OnCreate","OpenFromURIActivity" }
};
Crashes.Trackerror(ex,properties);
}
}
}
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer: false);
Xamarin.Essentials.Platform.Init(this,savedInstanceState);
global::Xamarin.Forms.Forms.Init(this,savedInstanceState);
if (Intent.Data == null)
{
LoadApplication(new App(new AndroidInitializer()));
}
else
{
var appFromUri = new AppOpenURI(Intent.Data.EncodedAuthority);
LoadApplication(appFromUri);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。