2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FWebCtrlIJavaScriptBridge.h
20 * @brief This is the header file for the %IJavaScriptBridge interface.
22 * This header file contains the declarations of the %IJavaScriptBridge interface.
24 #ifndef _FWEB_CTRL_IJAVA_SCRIPT_BRIDGE_H_
25 #define _FWEB_CTRL_IJAVA_SCRIPT_BRIDGE_H_
27 #include <FBaseString.h>
29 namespace Tizen { namespace Web { namespace Json
32 }}} // Tizen::Web::Json
34 namespace Tizen { namespace Web { namespace Controls
38 * @interface IJavaScriptBridge
39 * @brief This interface provides a communication channel between JavaScript and a native object.
43 * The %IJavaScriptBridge interface provides a communication channel between JavaScript and a native object.
45 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/web/controls_namespace.htm">Web Controls Guide</a>.
48 class _OSP_EXPORT_ IJavaScriptBridge
52 * This polymorphic destructor should be overridden if required. @n
53 * This way, the destructors of the derived classes are called when the destructor of this interface is called.
57 virtual ~IJavaScriptBridge(void) {}
60 * Called asynchronously on an invocation request from JavaScript through the requestToNative() method.
64 * @param[in] pArg The parameters delivered by JavaScript
66 virtual void HandleJavaScriptRequestN(Tizen::Web::Json::IJsonValue* pArg) = 0;
69 * Gets the name of %IJavaScriptBridge to identify each %IJavaScriptBridge.
73 * @return The name of %IJavaScriptBridge
75 virtual Tizen::Base::String GetName(void) = 0;
79 // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.
81 // Gets the Impl instance.
85 virtual void IJavaScriptBridge_Reserved1(void) {}
88 // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.
90 // Gets the Impl instance.
94 virtual void IJavaScriptBridge_Reserved2(void) {}
97 // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.
99 // Gets the Impl instance.
103 virtual void IJavaScriptBridge_Reserved3(void) {}
106 // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.
108 // Gets the Impl instance.
112 virtual void IJavaScriptBridge_Reserved4(void) {}
115 // This method is for internal use only. Using this method can cause behavioral, security-related, and consistency-related issues in the application.
117 // Gets the Impl instance.
121 virtual void IJavaScriptBridge_Reserved5(void) {}
123 }; // IJavaScriptBridge
125 }}} // Tizen::Web::Controls
126 #endif // _FWEB_CTRL_IJAVA_SCRIPT_BRIDGE_H_