问题
I'm trying to research a way to load a web view controller into an iOS app, such that the web page can communicate data back up to the parent.
Is this possible with SFSafariViewController
? Is there some mechanism like post-messaging, which will let me send data back up to the native app?
Note: it's pretty important that I use SFSafariViewController, since I also need the web view to persist/share cookies with Safari.
回答1:
Since SFSafariViewControllers
are not sandboxed, like all other implementations of UIWebView
, it means that they have access to private information, such as cookies.
As a safety measure, the SFSafariViewController
is then sandboxed from the rest of the app. The one way to communicate between it and your app is through a custom URL scheme.
The drawback of this is that you need to be in control of the web-service, and implement an API for this purpose (however you shouldn't really be able to access cookies otherwise).
You can follow this project to get you started.
Hope this helps,
Liam
来源:https://stackoverflow.com/questions/35164505/sfsafariviewcontroller-interacting-with-the-parent-app-from-a-web-page