Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WKWebView打开弹出式facebook验证窗口,但不登录Xamarin IOS_Ios_Xamarin_Webview_Wkwebview_Custom Renderer - Fatal编程技术网

WKWebView打开弹出式facebook验证窗口,但不登录Xamarin IOS

WKWebView打开弹出式facebook验证窗口,但不登录Xamarin IOS,ios,xamarin,webview,wkwebview,custom-renderer,Ios,Xamarin,Webview,Wkwebview,Custom Renderer,我正在用Xamarin制作一个跨平台的混合应用程序,基本上是用IOS拯救一个网站。问题是,在这个网站中有一个“使用Facebook登录”部分,这是一个API,而不是JavaScript的“window.open”方法。 我想知道我这样做是否正确,因为我尝试过不同的方法,但没有一种对我有效。我已尝试实施以下内容: 带有CreateWebView()函数和类的WKWebViewRenderer(实际代码) 带有DecidePolicy()函数和类的WebViewRenderer 启用JavaScr

我正在用Xamarin制作一个跨平台的混合应用程序,基本上是用IOS拯救一个网站。问题是,在这个网站中有一个“使用Facebook登录”部分,这是一个API,而不是JavaScript的“window.open”方法。 我想知道我这样做是否正确,因为我尝试过不同的方法,但没有一种对我有效。我已尝试实施以下内容:

  • 带有CreateWebView()函数和类的WKWebViewRenderer(实际代码)
  • 带有DecidePolicy()函数和类的WebViewRenderer
  • 启用JavaScriptEnable和JavaScriptCanOpenWindow的基本WebView
  • 它们之间的组合 提前非常感谢,我离开我的CustomWebView
注意:我不能使用UIWebView,它在AppStore中被禁止

    using Foundation;
    using MobileApp.iOS.Name;
    using MobileApp.Models;
    using System;
    using UIKit;
    using WebKit;
    using Xamarin.Forms;
    using Xamarin.Forms.Platform.iOS;

    [assembly: ExportRenderer(typeof(CustomWebViewIOS), typeof(CustomWebViewRenderer))]
    namespace MobileApp.iOS.Name
    {
        public class CustomWebViewRenderer : WkWebViewRenderer
        {
            protected override void OnElementChanged(VisualElementChangedEventArgs e)
            {
                base.OnElementChanged(e);

                WKWebView wKWebView = this;
                WKPreferences pref = new WKPreferences() { JavaScriptCanOpenWindowsAutomatically = true, JavaScriptEnabled = true, };
                var config = new WKWebViewConfiguration();
                config.Preferences = pref;
            
                if (NativeView != null)
                {
                    ((WKWebView)NativeView).UIDelegate = new MyWKUIDelegate();
                }
            }
        }

        public class MyWKUIDelegate : WKUIDelegate
        {
            public override WKWebView CreateWebView(WKWebView webView, WKWebViewConfiguration configuration, WKNavigationAction navigationAction, WKWindowFeatures windowFeatures)
            {
                var url = navigationAction.Request.Url;
                if (navigationAction.TargetFrame == null)
                {
                    webView.LoadRequest(navigationAction.Request);
                }
                return null;
            }
        }
    }


您好,这是否是一个弹出式登录窗口,运行共享代码的结果是什么?我输入用户名和密码,它会询问我是否想继续使用x名称,弹出窗口关闭,让我准确地将其发送到呼叫的位置,并且没有登录。。。如果我接受Facebook上的自大狂,下次我想登录时,它什么也不做,只是屏幕变白1秒钟,然后在一切开始时恢复正常。如果我想在wkwebview中使用cookies,你可以看看下面的讨论:我不知道这是否是我需要的,但我会尝试……好的,如果对你有用,让我知道。