Приложение для веб-просмотра, выполненное в C # для Android с использованием Xamarin для Visual Studio, не может открыть WhatsApp: URL-адрес показывает net :: ERR_UNKNOWN_URL_SCHEME ошибка - PullRequest
0 голосов
/ 19 мая 2018

У меня есть приложение для веб-просмотра на C # для Android, использующее Xamarin для visual studio.Предполагается, что это сообщение отправляется в WhatsApp, когда пользователи нажимают на кнопку, но показывает ошибку net :: ERR_UNKNOWN_URL_SCHEME, пожалуйста, помогите.рассматриваемый URL начинается с whatsapp: //

Я проверил этот и этот , но ни один из них не помещается в мой код

Вот мой полный код. Я новичок в C # для Android

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Webkit;
using Android.Widget;
using Android.OS;

namespace IwI
{
    [Activity(Label = "IwI", MainLauncher = true, Theme = "@android:style/Theme.NoTitleBar")]
    public class MainActivity : Activity
    {
        WebView web_view;

        protected override void OnCreate(Bundle bundle)
        {
            RequestWindowFeature(WindowFeatures.NoTitle);
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            web_view = FindViewById<WebView>(Resource.Id.webview);
            web_view.Settings.JavaScriptEnabled = true;
            web_view.SetWebViewClient(new IwIClient());
            web_view.LoadUrl("https://jacidd.com/iwi");

        }
        public class IwIClient : WebViewClient
        {
            public override bool ShouldOverrideUrlLoading(WebView view, IWebResourceRequest request)
            {
                view.LoadUrl(request.Url.ToString());
                return false;
            }
        }
        public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e)
        {
            if (keyCode == Keycode.Back && web_view.CanGoBack())
            {
                web_view.GoBack();
                return true;
            }
            return base.OnKeyDown(keyCode, e);
        }
    }
}

1 Ответ

0 голосов
/ 26 мая 2018

Исходя из ваших ответов на мои комментарии, вы можете попробовать изменить метод ShouldOverrideUrlLoading на следующий:

public bool ShouldOverrideUrlLoading(WebView view, string url) 
{
    if (url != null && url.startsWith("whatsapp://")) 
    {
        view.Context.StartActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        return true;
    } 
    else 
    {
        return false;
    }
}

Также стоит взглянуть на этот ответ на другой вопрос, это также может помочь вам решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...