TL; DR:
Нужно использовать класс Intent
для разных вещей. В Интернете можно найти примеры, где используется using Android.Content
. Это не относится к Xamarin.Forms (я думаю). Какой пакет NuGet необходим для его работы?
Нет ... У меня есть время:
Введение (ненужное чтение)
I Я начинаю с разработки мобильных приложений, поэтому я почти ничего не понимаю. Надеюсь получить краткий ответ здесь.
Мое приложение в основном WebView
контейнер с некоторыми другими незначительными функциями. Я использую Visual Studio 2019 и Xamarin.Forms , но на данный момент я компилирую только Android. iOS и UWP - однажды моя цель, по крайней мере одно приложение полностью завершено для Android.
Проблема 1 и где Я
Теперь мне нужно добавить две вещи. Одна из них - " Оцените нас ", а другая - ссылка " Поделиться ", обе в главном меню (проведите пальцем слева или щелкните значок гамбургера, чтобы открыть его). У меня уже есть три элемента списка в меню, где каждый из них открывает страницу в приложении.
Я понял, как добавить еще один элемент в меню, но в настоящее время я связываю этот элемент списка с market://details?id=com.mycompany.myapp
URL моего приложения на PlayStore . Он прекрасно открывается в PlayStore , но после нажатия кнопки «Назад» он переходит на домашний экран, а не обратно в приложение.
Текущий код, в который я добавил «Оценить нас»
MainPage.xaml.cs
using MyApp.Models;
using Plugin.Geolocator;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace MyApp.Views {
...
public partial class MainPage : MasterDetailPage {
...
public async Task NavigateFromMenu(int id) {
if (!MenuPages.ContainsKey(id) {
switch(id) {
...
case (int)MenuItemType.RateUs:
await Browser.OpenAsync("market://details?id=com.mycompany.myapp", BrowserLaunchMode.SystemPreferred);
// startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.mycompany.myapp")));
break;
...
}
}
...
}
}
}
MenuPage.xaml.cs
using MyApp.Models;
using System.Collections.Generic;
using System.ComponentModel;
using Xamarin.Forms;
namespace MyApp.Views {
...
public partial class MenuPage : ContentPage {
...
public MenuPage() {
InitializeComponent();
menuItems = new List<HomeMenuItem> {
...
new HomeMenuItem { id = MenuItemType.RateUs, Title="Rate Us", Icon="\uf005" },
...
}
}
}
}
HomeMenuItem.cs
namespace MyApp.Models {
public enum MenuItemType {
...
RateUs,
...
}
public class HomeMenuItem {
public MenuItemType Id { get; set; }
public string Title { get; set; }
public string Icon { get; set; }
}
}
Что я пробовал
Как вы можете видеть в комментарии //
в MainPage.xaml.cs, я нашел другое решение, которое, возможно, вернуло бы меня обратно в мое приложение после возврата из PlayStore .
Этот конкретный решение (очевидно ???) проблематично c в startActivity
, подсказка с указанием
Название 'startActivity' не существует в текущем контексте
, но Есть и другие, гораздо более сложные решения, такие как ЭТО ОДИН , в которых startActivity
обернуты public void function()
, что, я думаю, помогает.
Проблема 2
Мне нужно добавьте еще один элемент списка в боковое меню под названием « Share », где устройство спросит, с каким приложением вы хотите поделиться (или со py в буфер обмена), а затем использовать это приложение, чтобы поделиться текстом и ссылкой на мой выбор (то же самое для всех пользователей). Опять же, любая LINK , которую я нахожу, использует Intent
.
При полной потере здесь. Если вы не можете дать мне инструменты и руководство по их использованию, по крайней мере, укажите мне правильное направление, пожалуйста.