unity-webview is a plugin for Unity 5 that overlays WebView components on Unity view. It works on Android, iOS, Unity Web Player, and OS X (Windows is not supported for now).
unity-webview is derived from keijiro-san's https://github.com/keijiro/unity-webview-integration .
It is placed under
sample/. You can open it and import the plugin as
dist/unity-webview.unitypackageand import all files. It might be easier to extract
dist/unity-webview.zipinstead if you've imported unity-webview before.
Platform Specific Notes
OS X (Editor)
Since Unity 5.3.0, Unity.app is built with ATS (App Transport
Security) enabled and non-secured connection (HTTP) is not
permitted. If you want to open
http://foo/bar.html with this plugin
on Unity OS X Editor, you need to open
/Applications/Unity5.3.4p3/Unity.app/Contents/Info.plist with a text
editor and add the following,
--- Info.plist~ 2016-04-11 18:29:25.000000000 +0900 +++ Info.plist 2016-04-15 16:17:28.000000000 +0900 @@ -57,5 +57,10 @@ <string>EditorApplicationPrincipalClass</string> <key>UnityBuildNumber</key> <string>b902ad490cea</string> + <key>NSAppTransportSecurity</key> + <dict> + <key>NSAllowsArbitraryLoads</key> + <true/> + </dict> </dict> </plist>
or invoke the following from your terminal,
/usr/libexec/PlistBuddy -c "Add NSAppTransportSecurity:NSAllowsArbitraryLoads bool true" /Applications/Unity/Unity.app/Contents/Info.plist
The implementation now supports WKWebView but it is disabled by default. For enabling it, please set enableWKWebView as below:
webViewObject.Init( ... enableWKWebView: true);
NOTE: the following steps are now performed by Assets/Plugins/Android/Editor/UnityWebViewPostprocessBuild.cs.
Once you built an apk, please copy
sample/Assets/Plugins/Android/AndroidManifest.xml, edit the latter to add
android:name="com.unity3d.player.UnityPlayerActivity" ..., and
rebuilt the apk. Although some old/buggy devices may not work well
android:hardwareAccelerated="true", the WebView runs very
smoothly with this setting.
The implementation utilizes IFRAME so please put both "an_unityplayer_page.html" and "a_page_loaded_in_webview.html" should be placed on the same domain for avoiding cross-domain requests.