@grabjs/superapp-sdk 1.5.0 → 1.6.0
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/README.md +5 -3
- package/dist/index.js +1 -1
- package/docs/ContainerModule.md +102 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,13 +49,12 @@ Each resonse from the native bridge follows the same structure described bellow.
|
|
|
49
49
|
| 500 | Internal Error | Unexpected internal error (e.g. failed to serialize response object) |
|
|
50
50
|
|
|
51
51
|
### Success response example
|
|
52
|
-
|
|
53
52
|
```json
|
|
54
53
|
{
|
|
55
54
|
"status_code": 200,
|
|
56
55
|
"result": {
|
|
57
|
-
"latitude": 1.
|
|
58
|
-
"longitude": 1.
|
|
56
|
+
"latitude": 1.234567,
|
|
57
|
+
"longitude": -1.234567
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
60
|
```
|
|
@@ -68,3 +67,6 @@ Each resonse from the native bridge follows the same structure described bellow.
|
|
|
68
67
|
"error": "Client doesn't have access to method \"getLocation\" in module \"LocationModule\""
|
|
69
68
|
}
|
|
70
69
|
```
|
|
70
|
+
---
|
|
71
|
+
* **GDMCOMMENT:** Latitudes and longitudes used in this file are either sourced from GrabPlaces, GrabMaps, OSM or randomly created by the developer and are not obtained from other external sources.
|
|
72
|
+
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).SuperAppSDK={})}(this,function(e){"use strict";function n(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function t(e,n){for(var o=0;o<n.length;o++){var t=n[o];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function o(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).SuperAppSDK={})}(this,function(e){"use strict";function n(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function t(e,n){for(var o=0;o<n.length;o++){var t=n[o];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}function o(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}var r=require("@grabjs/mobile-kit-bridge-sdk"),u=function(){function e(){n(this,e),r.wrapModule(window,"ContainerModule")}return o(e,[{key:"setHeaderBackgroundColor",value:function(e){return window.WrappedContainerModule.invoke("setHeaderBackgroundColor",{backgroundColor:e})}},{key:"setHeaderTitle",value:function(e){return window.WrappedContainerModule.invoke("setHeaderTitle",{title:e})}},{key:"setShareUrl",value:function(e){return window.WrappedContainerModule.invoke("setShareUrl",{url:e})}}]),e}();"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var i,a,l=(function(e,n){function a(e){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(!e)return!1;var t=function(e){return Object.keys(e).concat(Object.getOwnPropertyNames(Object.getPrototypeOf(e)))}(e);return n.every(function(e){return 0<=t.indexOf(e)})}function l(r,e){var u=e.callbackNameFunc,i=e.funcToWrap;return function(e){return{subscribe:e,then:function(t,r){return new Promise(function(){try{var n=null,o=!1;n=e({next:function(e){t&&t(e),n&&n.unsubscribe(),o=!0}}),o&&n&&n.unsubscribe()}catch(e){r&&r(e)}})}}}(function(o){var n,t=u();return r[t]=function(e){if(a(e,"status_code"))if(a(e.result,"event"))switch(e.result.event){case d.StreamEvent.STREAM_TERMINATED:n.unsubscribe()}else o&&o.next&&o.next(e)},i(t),n=function(e){var n=!1;return{isUnsubscribed:function(){return n},unsubscribe:function(){n||(delete r[t],o&&o.complete&&o.complete(),n=!0)}}}()})}var d;((d=n).StreamEvent||(d.StreamEvent={})).STREAM_TERMINATED="STREAM_TERMINATED",d.wrapModule=function(u,i){u[function(e){return"Wrapped"+e}(i)]=function(e,t,n){var r={};return{invoke:function(n,o){return function(e,n){return n.funcNameToWrap,l(e,function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&(o[t[r]]=e[t[r]])}return o}(n,["funcNameToWrap"]))}(e,{funcNameToWrap:n,callbackNameFunc:function(){var e=r[n]||0;return r[n]=e+1,function(e){var n=e.moduleName,o=e.funcName,t=e.requestID;return n+"_"+o+"Callback"+(null!==t?"_"+t:"")}({moduleName:t,requestID:e,funcName:n})},funcToWrap:function(e){return function(e){if(u[i])u[i][e.method](JSON.stringify(e));else{if(!(u.webkit&&u.webkit.messageHandlers&&u.webkit.messageHandlers[i]))throw new Error("Unexpected method '"+e.method+"' for module '"+i+"'");u.webkit.messageHandlers[i].postMessage(e)}}({callback:e,method:n,module:t,parameters:null!=o?o:{}})}})}}}(u,i)},Object.defineProperty(d,"__esModule",{value:!0})}(i={exports:{}},i.exports),i.exports),d=(a=l)&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,c=function(){function e(){n(this,e),d.wrapModule(window,"LocaleModule")}return o(e,[{key:"getLanguageLocaleIdentifier",value:function(){return window.WrappedLocaleModule.invoke("getLanguageLocaleIdentifier")}}]),e}(),f=function(){function e(){n(this,e),d.wrapModule(window,"LocationModule")}return o(e,[{key:"getCoordinate",value:function(){return window.WrappedLocationModule.invoke("getCoordinate")}},{key:"observeLocationChange",value:function(){return window.WrappedLocationModule.invoke("observeLocationChange")}}]),e}(),s=function(){function e(){n(this,e),d.wrapModule(window,"MediaModule")}return o(e,[{key:"playDRMContent",value:function(e){return window.WrappedMediaModule.invoke("playDRMContent",{data:e})}}]),e}(),p=require("@grabjs/mobile-kit-bridge-sdk"),w=function(){function e(){n(this,e),p.wrapModule(window,"PlatformModule")}return o(e,[{key:"back",value:function(){return window.WrappedPlatformModule.invoke("back")}}]),e}(),v=function(){function e(){n(this,e),d.wrapModule(window,"ScopeModule")}return o(e,[{key:"hasAccessTo",value:function(e,n){return window.WrappedScopeModule.invoke("hasAccessTo",{module:e,method:n})}},{key:"reloadScopes",value:function(){return window.WrappedScopeModule.invoke("reloadScopes")}}]),e}(),k=require("@grabjs/mobile-kit-bridge-sdk"),g=function(){function e(){n(this,e),k.wrapModule(window,"StorageModule")}return o(e,[{key:"setBoolean",value:function(e,n){return window.WrappedStorageModule.invoke("setBoolean",{key:e,value:n})}},{key:"getBoolean",value:function(e){return window.WrappedStorageModule.invoke("getBoolean",{key:e})}},{key:"setInt",value:function(e,n){return window.WrappedStorageModule.invoke("setInt",{key:e,value:n})}},{key:"getInt",value:function(e){return window.WrappedStorageModule.invoke("getInt",{key:e})}},{key:"setString",value:function(e,n){return window.WrappedStorageModule.invoke("setString",{key:e,value:n})}},{key:"getString",value:function(e){return window.WrappedStorageModule.invoke("getString",{key:e})}},{key:"setDouble",value:function(e,n){return window.WrappedStorageModule.invoke("setDouble",{key:e,value:n})}},{key:"getDouble",value:function(e){return window.WrappedStorageModule.invoke("getDouble",{key:e})}},{key:"remove",value:function(e){return window.WrappedStorageModule.invoke("remove",{key:e})}},{key:"removeAll",value:function(){return window.WrappedStorageModule.invoke("removeAll")}}]),e}();e.ContainerModule=u,e.LocaleModule=c,e.LocationModule=f,e.MediaModule=s,e.PlatformModule=w,e.ScopeModule=v,e.StorageModule=g,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# ContainerModule
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
Provides APIs to interract with the webview container.
|
|
6
|
+
|
|
7
|
+
## Methods
|
|
8
|
+
|
|
9
|
+
### 1. Set header background color
|
|
10
|
+
|
|
11
|
+
**Method name**: `setHeaderBackgroundColor`
|
|
12
|
+
|
|
13
|
+
**Arguments**
|
|
14
|
+
|
|
15
|
+
| Name | Type | Description |
|
|
16
|
+
| --------------- | ------ | ----------------------- |
|
|
17
|
+
| backgroundColor | String | Hexadecimal color value |
|
|
18
|
+
|
|
19
|
+
**Return type**
|
|
20
|
+
|
|
21
|
+
`None`
|
|
22
|
+
|
|
23
|
+
**Code example**
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
import { ContainerModule } from "@grabjs/superapp-sdk";
|
|
27
|
+
|
|
28
|
+
// Ideally, initialize this only one and reuse across app.
|
|
29
|
+
const containerModule = new ContainerModule();
|
|
30
|
+
|
|
31
|
+
containerModule
|
|
32
|
+
.setHeaderBackgroundColor("#ffffff")
|
|
33
|
+
.then(({ result, error }) => {
|
|
34
|
+
if (result) {
|
|
35
|
+
// There is a valid result.
|
|
36
|
+
} else if (error) {
|
|
37
|
+
// Some error happened.
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 2. Set header title
|
|
43
|
+
|
|
44
|
+
**Method name**: `setHeaderTitle`
|
|
45
|
+
|
|
46
|
+
**Arguments**
|
|
47
|
+
|
|
48
|
+
| Name | Type | Description |
|
|
49
|
+
| ----- | ------ | ----------------- |
|
|
50
|
+
| title | String | Title of the page |
|
|
51
|
+
|
|
52
|
+
**Return type**
|
|
53
|
+
|
|
54
|
+
`None`
|
|
55
|
+
|
|
56
|
+
**Code example**
|
|
57
|
+
|
|
58
|
+
```javascript
|
|
59
|
+
import { ContainerModule } from "@grabjs/superapp-sdk";
|
|
60
|
+
|
|
61
|
+
// Ideally, initialize this only one and reuse across app.
|
|
62
|
+
const containerModule = new ContainerModule();
|
|
63
|
+
|
|
64
|
+
containerModule.setHeaderTitle("Home").then(({ result, error }) => {
|
|
65
|
+
if (result) {
|
|
66
|
+
// There is a valid result.
|
|
67
|
+
} else if (error) {
|
|
68
|
+
// Some error happened.
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. Set share URL
|
|
74
|
+
|
|
75
|
+
**Method name**: `setShareURL`
|
|
76
|
+
|
|
77
|
+
**Arguments**
|
|
78
|
+
|
|
79
|
+
| Name | Type | Description |
|
|
80
|
+
| ---- | ------ | ----------------------- |
|
|
81
|
+
| url | String | URL of the current page |
|
|
82
|
+
|
|
83
|
+
**Return type**
|
|
84
|
+
|
|
85
|
+
`None`
|
|
86
|
+
|
|
87
|
+
**Code example**
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
import { ContainerModule } from "@grabjs/superapp-sdk";
|
|
91
|
+
|
|
92
|
+
// Ideally, initialize this only one and reuse across app.
|
|
93
|
+
const containerModule = new ContainerModule();
|
|
94
|
+
|
|
95
|
+
containerModule.setShareURL("https://grab.com/").then(({ result, error }) => {
|
|
96
|
+
if (result) {
|
|
97
|
+
// There is a valid result.
|
|
98
|
+
} else if (error) {
|
|
99
|
+
// Some error happened.
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
```
|