我可以在Xamarin.Forms中使用OpenUrl为Safari创建一个白名单吗?

我可以在Xamarin.Forms中使用OpenUrl为Safari创建一个白名单吗?,safari,xamarin.ios,uiwebview,xamarin.forms,openurl,Safari,Xamarin.ios,Uiwebview,Xamarin.forms,Openurl,我正在做一个使用Xamarin.Forms作为容器应用程序的项目。此应用程序包含多个链接到受限web内容的web视图。其中一个链接是我们的Sharepoint网站。Sharepoint网站有一个链接,允许我们的用户访问第三方网站(基石)以查看培训视频。使用stock UIWebView、WKWebView或SFSafariViewController时,不会显示显示视频的弹出窗口。在我的应用程序中播放此视频的唯一方法是使用OpenURL在Safari中打开Sharepoint网站。问题是,这是一

我正在做一个使用Xamarin.Forms作为容器应用程序的项目。此应用程序包含多个链接到受限web内容的web视图。其中一个链接是我们的Sharepoint网站。Sharepoint网站有一个链接,允许我们的用户访问第三方网站(基石)以查看培训视频。使用stock UIWebView、WKWebView或SFSafariViewController时,不会显示显示视频的弹出窗口。在我的应用程序中播放此视频的唯一方法是使用OpenURL在Safari中打开Sharepoint网站。问题是,这是一个企业解决方案,我们不希望允许员工自由使用浏览器。

有没有办法创建一个白名单,或者控制搜索栏,或者读取他们链接到的url,并阻止它或重定向用户?

不幸的是,由于它在你的应用程序外部提供url导航,你无法从你的应用程序内部做很多事情来限制他们事后的行为,“openURL”仅返回一个布尔值来表示它的成功,您可以发送给它的参数只有:

  • 应用程序-此应用程序的引用 (UIApplication.SharedApplication)

  • url—指定的NSUrl 调用应用程序

  • sourceApplication-调用的包ID 应用程序

  • annotation-由传递的可选属性列表数据 调用应用程序

只有在重写“AppDelegate.cs”类中的“openURL”方法时,才能访问这些选项。有一组选项可以作为重写传递,但这些选项都不允许您限制用户在浏览器打开后的操作

如果使用“meraki”或其他软件来管理设备,以控制受管设备的使用,则您可能会设置一组“组策略”样式的限制,但这不是真正的Xamarin问题,应该与网络管理员讨论

话虽如此,我看不出有任何理由不能使用WebView1,这样您就可以在应用程序中处理所有问题。或者,利用自定义渲染器,传入直接视频URL,并提交打开设备媒体播放器以流式传输内容2


一,


2

感谢您的回复。我将与我们的管理员讨论如何按照您的建议在Maraki中添加组策略。我不确定为什么这些视频不会在WebView中播放,但我怀疑这是因为他们使用的是专有视频播放器,可以跟踪用户在视频中的进度,以确保符合法规要求。我认为,这与他们的身份验证过程(与我们的Sharepoint网站集成,而不是与我们的SSO集成)是我们无法在单独的媒体播放器中观看视频的原因。