Я хочу объяснить логику моего приложения c. Мое приложение просматривает PDF-файлы. Существует 2 способа отображения PDF.
Пользователь входит в приложение и нажимает кнопку Показать PDF. Затем приложение открывает новое окно, и пользователь выбирает файл PDF для его просмотра.
Пользователь открывает файл PDF из своей памяти телефона и делится этим файлом PDF с моим приложением. (Если пользователь ранее не входил в приложение, приложение открывает страницу входа.)
Первый работает нормально. Но когда пользователь отправляет PDF-файл моему приложению из своего хранилища телефона, приложение автоматически открывает мой HomePape.
В приложении есть 2 публикации c LoginPage () {}.
1 .publi c LoginPage ()
2.publi c LoginPage (строка _pdfUri)
Первый позволяет пользователю войти в приложение. Второе, если пользователь не вошел в приложение и поделился с ним PDF-файлом. Таким образом, приложение получает pdfpath и открывает PdfShowPage.
Давайте проверим код,
App.xaml.cs:
/ * Я отладил это. Приложение всегда приходит сюда, даже когда пользователь делится Pdf. Из-за этого PdfShowPage LoginPage работает, а LoginPage (строка _pdfUri) не работает. Приложение открывает HomePage.
LoginPage () -> HomePage
LoginPage (строка _pdfUri) -> PdfShowPage
* /
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new LoginPage())
{
BarBackgroundColor = Color.FromHex("008000"),
BarTextColor = Color.FromHex("E8E8E8")
};
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
MainActivity.cs,
protected override async void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
ZXing.Net.Mobile.Forms.Android.Platform.Init();
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
Share();
}
private void Share()
{
//Some codes for share
Navigate(path);
}
public async void Navigate(string path)
{
await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new LoginPage(path));
}
LoginPage.cs,
public LoginPage(string _pdfUri)
{
this.PdfUri = _pdfUri;
CheckSessionWithUri(_pdfUri); //it checks session and send pdf path to PDFshowPage.
}
public LoginPage()
{
CheckSession(); //it sends user to the HomePage if the user correctly login or the user has login before.
}
Я хочу контролировать, когда пользователь делится pdf в моем приложении, приложение должно отправить его в PdfShowPage. Должны ли мы контролировать это в App.xaml.cs или где-то еще?
Спасибо.