bare-ndk 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/binding.cc CHANGED
@@ -24,6 +24,7 @@ bare_ndk_exports(js_env_t *env, js_value_t *exports) {
24
24
 
25
25
  V("webViewInit", bare_ndk_web_view_init)
26
26
  V("webViewDebuggingEnabled", bare_ndk_web_view_debugging_enabled)
27
+ V("webViewJavaScriptEnabled", bare_ndk_web_view_javascript_enabled)
27
28
  V("webViewLoadURL", bare_ndk_web_view_load_url)
28
29
  V("webViewLoadData", bare_ndk_web_view_load_data)
29
30
  #undef V
package/lib/activity.h CHANGED
@@ -15,8 +15,6 @@ extern ANativeActivity *bare_native_activity;
15
15
  struct bare_ndk_activity_t {
16
16
  java_global_ref_t<java_object_t<"android/app/Activity">> handle;
17
17
 
18
- java_global_ref_t<java_class_t<"android/app/Activity">> init;
19
-
20
18
  java_env_t java;
21
19
  };
22
20
 
@@ -28,8 +26,6 @@ bare_ndk_activity_init(js_env_t *env, js_callback_info_t *info) {
28
26
 
29
27
  activity->java = bare_native_activity->env;
30
28
 
31
- activity->init = java_class_t<"android/app/Activity">(activity->java);
32
-
33
29
  activity->handle = java_object_t<"android/app/Activity">(activity->java, bare_native_activity->clazz);
34
30
 
35
31
  js_external_t<bare_ndk_activity_t> handle;
@@ -59,7 +55,7 @@ bare_ndk_activity_content_view(js_env_t *env, js_callback_info_t *info) {
59
55
  err = js_get_value(env, js_external_t<bare_ndk_view_t>(argv[1]), view);
60
56
  assert(err == 0);
61
57
 
62
- auto set_content_view = activity->init.get_method<void(java_object_t<"android/view/View">)>("setContentView");
58
+ auto set_content_view = activity->handle.get_class().get_method<void(java_object_t<"android/view/View">)>("setContentView");
63
59
 
64
60
  set_content_view(activity->handle, view->handle);
65
61
 
package/lib/web-view.h CHANGED
@@ -11,8 +11,6 @@
11
11
  struct bare_ndk_web_view_t {
12
12
  java_global_ref_t<java_object_t<"android/webkit/WebView">> handle;
13
13
 
14
- java_global_ref_t<java_class_t<"android/webkit/WebView">> init;
15
-
16
14
  js_env_t *env;
17
15
  js_ref_t *ctx;
18
16
  };
@@ -47,9 +45,9 @@ bare_ndk_web_view_init(js_env_t *env, js_callback_info_t *info) {
47
45
 
48
46
  web_view->env = env;
49
47
 
50
- web_view->init = java_class_t<"android/webkit/WebView">(activity->java);
48
+ auto init = java_class_t<"android/webkit/WebView">(activity->java);
51
49
 
52
- web_view->handle = web_view->init(java_object_t<"android/content/Context">(activity->java, activity->handle));
50
+ web_view->handle = init(java_object_t<"android/content/Context">(activity->java, activity->handle));
53
51
 
54
52
  err = js_create_reference(env, argv[1], 1, &web_view->ctx);
55
53
  assert(err == 0);
@@ -90,6 +88,37 @@ bare_ndk_web_view_debugging_enabled(js_env_t *env, js_callback_info_t *info) {
90
88
  return nullptr;
91
89
  }
92
90
 
91
+ static js_value_t *
92
+ bare_ndk_web_view_javascript_enabled(js_env_t *env, js_callback_info_t *info) {
93
+ int err;
94
+
95
+ size_t argc = 2;
96
+ js_value_t *argv[2];
97
+
98
+ err = js_get_callback_info(env, info, &argc, argv, nullptr, nullptr);
99
+ assert(err == 0);
100
+
101
+ assert(argc == 2);
102
+
103
+ bare_ndk_web_view_t *web_view;
104
+ err = js_get_value(env, js_external_t<bare_ndk_web_view_t>(argv[0]), web_view);
105
+ assert(err == 0);
106
+
107
+ bool enabled;
108
+ err = js_get_value(env, js_boolean_t(argv[1]), enabled);
109
+ assert(err == 0);
110
+
111
+ auto get_settings = web_view->handle.get_class().get_method<java_object_t<"android/webkit/WebSettings">()>("getSettings");
112
+
113
+ auto settings = get_settings(web_view->handle);
114
+
115
+ auto set_javascript_enabled = settings.get_class().get_method<void(bool)>("setJavaScriptEnabled");
116
+
117
+ set_javascript_enabled(settings, enabled);
118
+
119
+ return nullptr;
120
+ }
121
+
93
122
  static js_value_t *
94
123
  bare_ndk_web_view_load_url(js_env_t *env, js_callback_info_t *info) {
95
124
  int err;
@@ -110,7 +139,7 @@ bare_ndk_web_view_load_url(js_env_t *env, js_callback_info_t *info) {
110
139
  err = js_get_value(env, js_string_t(argv[1]), url);
111
140
  assert(err == 0);
112
141
 
113
- auto load_url = web_view->init.get_method<void(std::string)>("loadUrl");
142
+ auto load_url = web_view->handle.get_class().get_method<void(std::string)>("loadUrl");
114
143
 
115
144
  load_url(web_view->handle, url);
116
145
 
@@ -153,7 +182,7 @@ bare_ndk_web_view_load_data(js_env_t *env, js_callback_info_t *info) {
153
182
  err = js_get_value(env, js_string_t(argv[5]), history_url);
154
183
  assert(err == 0);
155
184
 
156
- auto load_data = web_view->init.get_method<void(std::string, std::string, std::string, std::string, std::string)>("loadDataWithBaseURL");
185
+ auto load_data = web_view->handle.get_class().get_method<void(std::string, std::string, std::string, std::string, std::string)>("loadDataWithBaseURL");
157
186
 
158
187
  load_data(web_view->handle, base_url, data, mime_type, encoding, history_url);
159
188
 
package/lib/web-view.js CHANGED
@@ -14,6 +14,11 @@ module.exports = class NDKWebView extends NDKView {
14
14
  return this
15
15
  }
16
16
 
17
+ javaScriptEnabled(enabled = true) {
18
+ binding.webViewJavaScriptEnabled(this._handle, enabled)
19
+ return this
20
+ }
21
+
17
22
  loadURL(url) {
18
23
  binding.webViewLoadURL(this._handle, url)
19
24
  return this
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-ndk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Android NDK bindings and runtime for Bare",
5
5
  "exports": {
6
6
  "./package": "./package.json",
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file