Visual studio 如何在IOS混合xamarin应用程序中允许跨源
我正在使用xamarin开发混合移动应用程序。我在使用PdfTron webviewer在IOS webview中呈现xod文件时遇到问题。我在Android应用程序中也遇到了同样的问题,但在设置“AllowUniversalAccessFromFileURLs=true”后,它在Android中运行良好。所以这个问题和交叉起源有关,并在设定后起作用。现在我在IOS中寻找同样的设置。我试着穿过头部,但不起作用。似乎在IOS plist中必须对此进行一些设置。请让我知道IOS xamarin中的“AllowUniversalAccessFromFileURLs”等效设置 谢谢 塔洛克Visual studio 如何在IOS混合xamarin应用程序中允许跨源,visual-studio,xamarin,xamarin.ios,xamarin.android,cross-domain,Visual Studio,Xamarin,Xamarin.ios,Xamarin.android,Cross Domain,我正在使用xamarin开发混合移动应用程序。我在使用PdfTron webviewer在IOS webview中呈现xod文件时遇到问题。我在Android应用程序中也遇到了同样的问题,但在设置“AllowUniversalAccessFromFileURLs=true”后,它在Android中运行良好。所以这个问题和交叉起源有关,并在设定后起作用。现在我在IOS中寻找同样的设置。我试着穿过头部,但不起作用。似乎在IOS plist中必须对此进行一些设置。请让我知道IOS xamarin中的“
NSAPP运输安全
NSAllowsArbitraryLoads
据我所知,您只需将其添加到您的信息中。plist我通过执行以下操作实现了此功能:
var config = new WKWebViewConfiguration { UserContentController = userController };
try
{
config.Preferences.SetValueForKey(NSObject.FromObject(true), new NSString("allowFileAccessFromFileURLs"));
config.Preferences.SetValueForKey(NSObject.FromObject(true), new NSString("allowUniversalAccessFromFileURLs"));
}
catch (Exception ex)
{
}
var webView = new WKWebView(Frame, config)
{
NavigationDelegate = new CustomWKNavigationDelegate(this.Element)
};
SetNativeControl(webView);
允许跨域的工作是由
SetValueForKey
完成的,这是唯一的方法,因为没有API可以做到这一点,但需要记住的是,互联网上说这个inst确实受支持。因此,try catch
blockHi Greensy,谢谢您的回复。我已经进行了设置,但仍然无法在webviewer上渲染xod。似乎IOS正在阻止“xod”扩展。有没有办法允许xamarin info.plist中的所有扩展。我已经查看了Android代码,并在Android中找到了设置“webView.Settings.DomStorageEnabled==true”。因此,我认为IOS中缺少此设置。请告诉我如何在info.plist中设置“DomStorageEnabled”。
var config = new WKWebViewConfiguration { UserContentController = userController };
try
{
config.Preferences.SetValueForKey(NSObject.FromObject(true), new NSString("allowFileAccessFromFileURLs"));
config.Preferences.SetValueForKey(NSObject.FromObject(true), new NSString("allowUniversalAccessFromFileURLs"));
}
catch (Exception ex)
{
}
var webView = new WKWebView(Frame, config)
{
NavigationDelegate = new CustomWKNavigationDelegate(this.Element)
};
SetNativeControl(webView);