+
+std::string sendSyncMessage(const char* name, const char* body)
+{
+ WKStringRef nameWKString = WKStringCreateWithUTF8CString(name);
+ WKStringRef bodyWKString = NULL;
+ if (body) {
+ bodyWKString = WKStringCreateWithUTF8CString(body);
+ }
+ WKTypeRef retWKType = NULL;
+ WKBundlePostSynchronousMessage(s_injectedBundleRef,
+ nameWKString,
+ bodyWKString,
+ &retWKType);
+ WKRelease(nameWKString);
+ if (bodyWKString) {
+ WKRelease(bodyWKString);
+ }
+ if (retWKType) {
+ std::string retString = toString(static_cast<WKStringRef>(retWKType));
+ WKRelease(retWKType);
+ return retString;
+ } else {
+ return std::string();
+ }
+}
+
+void sendAsyncMessage(const char* name, const char* body)
+{
+ WKStringRef nameWKString = WKStringCreateWithUTF8CString(name);
+ WKStringRef bodyWKString = NULL;
+ if (body) {
+ bodyWKString = WKStringCreateWithUTF8CString(body);
+ }
+ WKTypeRef retWKType = NULL;
+ WKBundlePostMessage(s_injectedBundleRef,
+ nameWKString,
+ bodyWKString);
+ WKRelease(nameWKString);
+ if (bodyWKString) {
+ WKRelease(bodyWKString);
+ }
+}