UniWebViewAndroid.cs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. #if UNITY_ANDROID && !UNITY_EDITOR
  2. using UnityEngine;
  3. public class UniWebViewInterface {
  4. private static readonly AndroidJavaClass plugin;
  5. private static bool correctPlatform = Application.platform == RuntimePlatform.Android;
  6. static UniWebViewInterface() {
  7. var go = new GameObject("UniWebViewAndroidStaticListener");
  8. go.AddComponent<UniWebViewAndroidStaticListener>();
  9. plugin = new AndroidJavaClass("com.onevcat.uniwebview.UniWebViewInterface");
  10. CheckPlatform();
  11. plugin.CallStatic("prepare");
  12. }
  13. public static void SetLogLevel(int level) {
  14. CheckPlatform();
  15. plugin.CallStatic("setLogLevel", level);
  16. }
  17. public static void Init(string name, int x, int y, int width, int height) {
  18. CheckPlatform();
  19. plugin.CallStatic("init", name, x, y, width, height);
  20. }
  21. public static void Destroy(string name) {
  22. CheckPlatform();
  23. plugin.CallStatic("destroy", name);
  24. }
  25. public static void Load(string name, string url, bool skipEncoding, string readAccessURL) {
  26. CheckPlatform();
  27. plugin.CallStatic("load", name, url);
  28. }
  29. public static void LoadHTMLString(string name, string html, string baseUrl, bool skipEncoding) {
  30. CheckPlatform();
  31. plugin.CallStatic("loadHTMLString", name, html, baseUrl);
  32. }
  33. public static void Reload(string name) {
  34. CheckPlatform();
  35. plugin.CallStatic("reload", name);
  36. }
  37. public static void Stop(string name) {
  38. CheckPlatform();
  39. plugin.CallStatic("stop", name);
  40. }
  41. public static string GetUrl(string name) {
  42. CheckPlatform();
  43. return plugin.CallStatic<string>("getUrl", name);
  44. }
  45. public static void SetFrame(string name, int x, int y, int width, int height) {
  46. CheckPlatform();
  47. plugin.CallStatic("setFrame", name, x, y, width, height);
  48. }
  49. public static void SetPosition(string name, int x, int y) {
  50. CheckPlatform();
  51. plugin.CallStatic("setPosition", name, x, y);
  52. }
  53. public static void SetSize(string name, int width, int height) {
  54. CheckPlatform();
  55. plugin.CallStatic("setSize", name, width, height);
  56. }
  57. public static bool Show(string name, bool fade, int edge, float duration, string identifier) {
  58. CheckPlatform();
  59. return plugin.CallStatic<bool>("show", name, fade, edge, duration, identifier);
  60. }
  61. public static bool Hide(string name, bool fade, int edge, float duration, string identifier) {
  62. CheckPlatform();
  63. return plugin.CallStatic<bool>("hide", name, fade, edge, duration, identifier);
  64. }
  65. public static bool AnimateTo(string name, int x, int y, int width, int height, float duration, float delay, string identifier) {
  66. CheckPlatform();
  67. return plugin.CallStatic<bool>("animateTo", name, x, y, width, height, duration, delay, identifier);
  68. }
  69. public static void AddJavaScript(string name, string jsString, string identifier) {
  70. CheckPlatform();
  71. plugin.CallStatic("addJavaScript", name, jsString, identifier);
  72. }
  73. public static void EvaluateJavaScript(string name, string jsString, string identifier) {
  74. CheckPlatform();
  75. plugin.CallStatic("evaluateJavaScript", name, jsString, identifier);
  76. }
  77. public static void AddUrlScheme(string name, string scheme) {
  78. CheckPlatform();
  79. plugin.CallStatic("addUrlScheme", name, scheme);
  80. }
  81. public static void RemoveUrlScheme(string name, string scheme) {
  82. CheckPlatform();
  83. plugin.CallStatic("removeUrlScheme", name, scheme);
  84. }
  85. public static void AddSslExceptionDomain(string name, string domain) {
  86. CheckPlatform();
  87. plugin.CallStatic("addSslExceptionDomain", name, domain);
  88. }
  89. public static void RemoveSslExceptionDomain(string name, string domain) {
  90. CheckPlatform();
  91. plugin.CallStatic("removeSslExceptionDomain", name, domain);
  92. }
  93. public static void AddPermissionTrustDomain(string name, string domain) {
  94. CheckPlatform();
  95. plugin.CallStatic("addPermissionTrustDomain", name, domain);
  96. }
  97. public static void RemovePermissionTrustDomain(string name, string domain) {
  98. CheckPlatform();
  99. plugin.CallStatic("removePermissionTrustDomain", name, domain);
  100. }
  101. public static void SetHeaderField(string name, string key, string value) {
  102. CheckPlatform();
  103. plugin.CallStatic("setHeaderField", name, key, value);
  104. }
  105. public static void SetUserAgent(string name, string userAgent) {
  106. CheckPlatform();
  107. plugin.CallStatic("setUserAgent", name, userAgent);
  108. }
  109. public static string GetUserAgent(string name) {
  110. CheckPlatform();
  111. return plugin.CallStatic<string>("getUserAgent", name);
  112. }
  113. public static void SetAllowAutoPlay(bool flag) {
  114. CheckPlatform();
  115. plugin.CallStatic("setAllowAutoPlay", flag);
  116. }
  117. public static void SetAllowJavaScriptOpenWindow(bool flag) {
  118. CheckPlatform();
  119. plugin.CallStatic("setAllowJavaScriptOpenWindow", flag);
  120. }
  121. public static void SetJavaScriptEnabled(bool enabled) {
  122. CheckPlatform();
  123. plugin.CallStatic("setJavaScriptEnabled", enabled);
  124. }
  125. public static void CleanCache(string name) {
  126. CheckPlatform();
  127. plugin.CallStatic("cleanCache", name);
  128. }
  129. public static void ClearCookies() {
  130. CheckPlatform();
  131. plugin.CallStatic("clearCookies");
  132. }
  133. public static void SetCookie(string url, string cookie, bool skipEncoding) {
  134. CheckPlatform();
  135. plugin.CallStatic("setCookie", url, cookie);
  136. }
  137. public static string GetCookie(string url, string key, bool skipEncoding) {
  138. CheckPlatform();
  139. return plugin.CallStatic<string>("getCookie", url, key);
  140. }
  141. public static void ClearHttpAuthUsernamePassword(string host, string realm) {
  142. CheckPlatform();
  143. plugin.CallStatic("clearHttpAuthUsernamePassword", host, realm);
  144. }
  145. public static void SetBackgroundColor(string name, float r, float g, float b, float a) {
  146. CheckPlatform();
  147. plugin.CallStatic("setBackgroundColor", name, r, g, b, a);
  148. }
  149. public static void SetWebViewAlpha(string name, float alpha) {
  150. CheckPlatform();
  151. plugin.CallStatic("setWebViewAlpha", name, alpha);
  152. }
  153. public static float GetWebViewAlpha(string name) {
  154. CheckPlatform();
  155. return plugin.CallStatic<float>("getWebViewAlpha", name);
  156. }
  157. public static void SetShowSpinnerWhileLoading(string name, bool show) {
  158. CheckPlatform();
  159. plugin.CallStatic("setShowSpinnerWhileLoading", name, show);
  160. }
  161. public static void SetSpinnerText(string name, string text) {
  162. CheckPlatform();
  163. plugin.CallStatic("setSpinnerText", name, text);
  164. }
  165. public static bool CanGoBack(string name) {
  166. CheckPlatform();
  167. return plugin.CallStatic<bool>("canGoBack", name);
  168. }
  169. public static bool CanGoForward(string name) {
  170. CheckPlatform();
  171. return plugin.CallStatic<bool>("canGoForward", name);
  172. }
  173. public static void GoBack(string name) {
  174. CheckPlatform();
  175. plugin.CallStatic("goBack", name);
  176. }
  177. public static void GoForward(string name) {
  178. CheckPlatform();
  179. plugin.CallStatic("goForward", name);
  180. }
  181. public static void SetOpenLinksInExternalBrowser(string name, bool flag) {
  182. CheckPlatform();
  183. plugin.CallStatic("setOpenLinksInExternalBrowser", name, flag);
  184. }
  185. public static void SetHorizontalScrollBarEnabled(string name, bool enabled) {
  186. CheckPlatform();
  187. plugin.CallStatic("setHorizontalScrollBarEnabled", name, enabled);
  188. }
  189. public static void SetVerticalScrollBarEnabled(string name, bool enabled) {
  190. CheckPlatform();
  191. plugin.CallStatic("setVerticalScrollBarEnabled", name, enabled);
  192. }
  193. public static void SetBouncesEnabled(string name, bool enabled) {
  194. CheckPlatform();
  195. plugin.CallStatic("setBouncesEnabled", name, enabled);
  196. }
  197. public static void SetZoomEnabled(string name, bool enabled) {
  198. CheckPlatform();
  199. plugin.CallStatic("setZoomEnabled", name, enabled);
  200. }
  201. public static void SetBackButtonEnabled(string name, bool enabled) {
  202. CheckPlatform();
  203. plugin.CallStatic("setBackButtonEnabled", name, enabled);
  204. }
  205. public static void SetUseWideViewPort(string name, bool use) {
  206. CheckPlatform();
  207. plugin.CallStatic("setUseWideViewPort", name, use);
  208. }
  209. public static void SetLoadWithOverviewMode(string name, bool overview) {
  210. CheckPlatform();
  211. plugin.CallStatic("setLoadWithOverviewMode", name, overview);
  212. }
  213. public static void SetImmersiveModeEnabled(string name, bool enabled) {
  214. CheckPlatform();
  215. plugin.CallStatic("setImmersiveModeEnabled", name, enabled);
  216. }
  217. public static void SetWebContentsDebuggingEnabled(bool enabled) {
  218. CheckPlatform();
  219. plugin.CallStatic("setWebContentsDebuggingEnabled", enabled);
  220. }
  221. public static void ShowWebViewDialog(string name, bool show) {
  222. CheckPlatform();
  223. plugin.CallStatic("showWebViewDialog", name, show);
  224. }
  225. public static void SetAllowHTTPAuthPopUpWindow(string name, bool flag) {
  226. CheckPlatform();
  227. plugin.CallStatic("setAllowHTTPAuthPopUpWindow", name, flag);
  228. }
  229. public static void Print(string name) {
  230. CheckPlatform();
  231. plugin.CallStatic("print", name);
  232. }
  233. public static void SetCalloutEnabled(string name, bool flag) {
  234. CheckPlatform();
  235. plugin.CallStatic("setCalloutEnabled", name, flag);
  236. }
  237. public static void CheckPlatform() {
  238. if (!correctPlatform) {
  239. throw new System.InvalidOperationException("Method can only be performed on Android.");
  240. }
  241. }
  242. }
  243. #endif