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 +1 -0
- package/lib/activity.h +1 -5
- package/lib/web-view.h +35 -6
- package/lib/web-view.js +5 -0
- package/package.json +1 -1
- package/prebuilds/android-arm/bare-ndk.bare +0 -0
- package/prebuilds/android-arm/libbare.so +0 -0
- package/prebuilds/android-arm64/bare-ndk.bare +0 -0
- package/prebuilds/android-arm64/libbare.so +0 -0
- package/prebuilds/android-ia32/bare-ndk.bare +0 -0
- package/prebuilds/android-ia32/libbare.so +0 -0
- package/prebuilds/android-x64/bare-ndk.bare +0 -0
- package/prebuilds/android-x64/libbare.so +0 -0
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->
|
|
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
|
-
|
|
48
|
+
auto init = java_class_t<"android/webkit/WebView">(activity->java);
|
|
51
49
|
|
|
52
|
-
web_view->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->
|
|
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->
|
|
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
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|