Задать вопрос
@novikov__al

Как сделать открытие ссылок в webview, а не в браузере?

Есть webview, но при переходе по ссылкам открывается браузер... Как сделать, чтобы все переходы происходили внутри приложения?

код
using Android.App;
using Android.OS;
using Android.Runtime;
using Android.Webkit;
using Android.Widget;
using AndroidX.AppCompat.App;
using Java.Interop;

namespace MyApp
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]

    public class MainActivity : AppCompatActivity
    {
        WebView mWebview; //это контейнер для просмотра HTML

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);

            mWebview = new WebView(this);

            mWebview.Settings.JavaScriptEnabled = true; //это разрешение работа JS скриптов
            mWebview.Settings.DomStorageEnabled = true; //это разрешение на запись в память браузера
            mWebview.Settings.BuiltInZoomControls = true; //это разрешение на масштабирование пальцами щипком
            mWebview.Settings.DisplayZoomControls = false; //это запрет вывода кнопок масштаба
            mWebview.Settings.CacheMode = CacheModes.NoCache; //это отключает либо включает кэширование данных

            //добавляем интерфейс для javascript
            mWebview.AddJavascriptInterface(new JavaScriptInterface(), "interface");
            mWebview.LoadUrl("https://site.ru"); 
            SetContentView(mWebview);
            
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
    public class JavaScriptInterface : Java.Lang.Object
    {
        [JavascriptInterface]
        [Export("alert")]
        public void alert(string data)
        {
            Toast.MakeText(Application.Context, data, ToastLength.Short).Show();
        }
    }
}


заранее большое спасибо!
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы