本章节包含与now.gg云(now.gg Cloud)相关的附加指南,以帮助您方便地配置我们的服务和API。
提供以下指南:
本部分重点介绍如何设置now.gg云存储,通过定义保存的文件路径和排除的文件路径,以保存和恢复用户的游戏进度数据。
定义“保存”(‘Save’)和“排除”(‘Excluded’)文件路径是一项基本实践,可以减少游戏的加载时间,以增强用户体验并确保now.gg云存储的最优利用。
要设置云存储,您应指定以下内容:
/data/data/<package_name>/<file_name>
。您可以为now.gg云发布的任何新应用配置此设置。如果您的应用已经发布,您将需要发布一个新的版本。
配置文件的路径:
注意:
Android id
,以获得更好的体验。通过本指南,您可以准备要上传到nowStudio的应用程序文件。
要使用nowStudio创建发布,您需要准备应用程序文件。我们接受独立的APK,或者APK和资源(Assets)Zip文件。
您可以准备以下任何一个内容:
本节提供准备要上传到nowStudio的APK文件的说明。
准备一个符合以下要求的APK文件:
当您准备好APK后,您可以继续在nowStudio上 添加您的应用程序。
游戏通常会在启动时下载必要的资源,从而导致游戏体验的延迟。借助now.gg,您可以提供包含APK和资源的Zip包来明显减少游戏加载的时间并且用户能立即开始游戏。
您应该按照以下指定的格式和内容创建您应用和资源的Zip文件:
以下JSON示例演示了清单文件metadata.json所需的格式:
{ "assets": [ { "name": "asset1.xyz", "location": "/data/media/0/Android/data/<packageName>/files" }, { "name": "asset2.unity3d", "location": "/data/media/0/Android/data/<packageName>/files" }, { "name": "OtherAssets", "location": "/data/data/<packageName>/files" } ] }
准备好APK和资源的Zip文件后,您可以继续在nowStudio上添加您的应用程序。
如果您想将应用程序托管在now.gg以外的域上,本指南将详细介绍为应用程序添加自定义域的过程。
另外除了now.gg云,您还可以通过在nowStudio上为您的应用程序添加自定义域来在其他域上托管您的应用程序。
介绍了以下方案:
本节介绍为新的应用程序添加自定义域的步骤。
请按照以下操作:
本节介绍为已发布应用程序添加自定义域的步骤。
请执行此下操作:
nowgg CLI是一种命令行工具,可让您轻松地将应用构建上传到nowStudio。本指南将详细介绍这一功能。
在macOS或者Windows打开任意终端(terminal)。
pip install nowgg
nowgg init --token "<your_publisherToken_from_nowStudio>"
nowgg upload --app_id <your_app_id> --file_path "/directory/sample.apk" --apk_version <app_version_name> --version_code <app_version_code>
注意:您的应用将上传到nowStudio的 应用程序库。
nowgg upload --app_id <your_app_id> --file_path "/directory/sample.apk" --apk_version <apk_version> --version_code <app_version_code> --deploy
app_id
,您可以用它在该测试环境上创建发布草稿。
app_id
就是 1234_t1
。--deploy
会触发使用 app_id
标识的测试环境上的部署流程。nowgg -h nowgg init -h nowgg upload -h
<python directory>\<Scripts>
。以下文档重点介绍了nowStudio提供的订阅功能的重要方面。
订阅是now.gg上的应用内产品,向用户收取访问您应用内内容或服务的定期费用。
nowStudio提供多功能的“订阅”功能,使您能够轻松创建、管理和销售订阅。应用内产品和订阅产品的主要区别在于,应用内产品向用户收取的是一次性费用,而订阅涉及的是定期性费用。
要理解如何在nowStudio中创建和管理订阅:
要理解如何使用now.gg支付模块在应用程序中实现订阅,请参考以下指南:
重要:除本页信息外,您还应参考 now.gg政策。
本节介绍订阅。
订阅提供了一组用户可以在指定时间段内访问的权益。您可以在同一应用程序中拥有多个订阅,以代表不同的权益集或单个权益集的不同等级,例如“黄金”和“钻石”套餐。用户通过在now.gg上的应用购买订阅,从而获得订阅的访问权限。
now.gg可以让您选择订阅的持续时间。可用的计费周期为:
now.gg的订阅是自动续订的。用户可以在指定的计费周期内购买订阅,并在每个周期结束时自动续订,确保不间断的订阅体验直到取消订阅。用户、开发者或now.gg可以取消订阅。
您最多可以向订阅添加四项权益,帮助用户理解他们将收到哪些权益。您应该突出显示与您的订阅相关的核心权益。
如果续订支付被拒绝,now.gg将提示用户解决支付问题。如果未解决,订阅将自动过期。
now.gg嵌入(Embed)Javascript 模块为开发者提供了框架,使他们能够在网站上无缝嵌入云游戏。
通过now.gg嵌入模块,开发者能:
在集成now.gg嵌入模块之前,必须满足以下前提条件:
clientId
。要集成now.gg嵌入模块:
第一步是将嵌入模块添加到您的网站。
要将now.gg嵌入模块添加到您的网站,请在脚本标签中添加模块资源的JavaScript,如下所示:
<script type="text/javascript" src="https://cdn.now.gg/external/sdk/ifp-sdk-1.1.0.min.js"></script>
在添加了now.gg嵌入模块资源后,您可以使用now.gg嵌入功能初始化模块,以在您的网站上嵌入游戏。
操作步骤如下:
iframeParentElement
,appEventCallbackFunction
,和 sdkEventCallbackFunction
。NowIfp
类的 init
函数,以启动云游戏,如下所示:const iframeParentElement = document.getElementById("your_iframe_element"); // 用于处理从Android应用发送的事件的回调函数。 const appEventCallbackFunction = (event) => { console.log(event.name); console.log(event.data); // 于此进行基于事件的处理 }; // 用于处理javascript 模块事件的回调函数。 const sdkEventCallbackFunction = (event) => { console.log(event.name); console.log(event.msg); // 于此进行基于事件的处理 }; NowIfp.init({ clientId: <"your_clientId"> , appId: <"your_production_appId/your_test_track_appId"> , \\ appId 示例 - 测试环境: "1234_t1" | 生产环境: "1234" iframeParentElement: iframeParentElement, customData: {} // 用于应用特定的自定义处理 appLaunchData: { // 传递启动参数给Iframe,它将被序列化并在launch intent传给应用。 [key]: [value] } appEventCallback: appEventCallbackFunction, sdkEventCallback: sdkEventCallbackFunction, isNowLoginEnabled: true });
使用本节内容,您可以在nowStudio中找到您的 appId
。
appId
是您的应用程序在nowStudio中的唯一标识符。appId
。
appId
。appId
也会在您添加应用程序后在 应用详情章节 中显示。appId
列在线上测试发布(live test release)中,如下所示:appId
列在线上生产发布(live production release)中,如下所示:参数 | 类型 | 是否必需 | 概要 |
---|---|---|---|
clientId | string | 是 | 唯一的客户端标识符。 |
appId | string | 是 | 在nowStudio上与您的应用程序/游戏关联的App ID。会为生产和测试环境生成不同的appId。如 – 生产appId:“1234”。测试appId:“1234_t1”。 |
iframeParentElement | element | 是 | 用于嵌入播放器渲染的iframeParentElement。 |
customData | object | 否 | 您希望传递给now.gg后端的任何应用特定数据。 |
appLaunchData | object | 否 | 作为应用launch intent extras发送的额外数据。- 参考 – 定义appLaunchData 章节。 |
appEventCallback | function | 否 | 用于处理应用相关事件的回调函数。参考 – 在Iframe中启动游戏章节。 |
sdkEventCallback | function | 否 | 用于处理SDK相关事件的回调函数。参考 – 在Iframe中启动游戏章节。 |
isNowLoginEnabled | boolean | 否 | true – 启动应用时将触发 now.gg 登录。 false – 启动应用时不会触发 now.gg 登录。 |
您的游戏现在已嵌入到您的网页中,由now.gg云提供支持。
本节说明了如何在您网站(HTML页面)上的嵌入游戏实现高级功能。
为进一步提升游戏体验,now.gg嵌入模块使您能够:
在您集成了now.gg事件模块后,您可以将事件和数据从您在now.gg云上的应用程序传递到嵌入游戏的HTML页面。
请参考 :
现在,您可以从HTML页面向您的应用程序传递应用启动参数。我们提供了示例代码片段,用于定义传递给 NowIfp.init
的 appLaunchData
,并在您的应用获取它。
appLaunchData
作为参数传递给 NowIfp.init()
,其作为launch intent参数传递给应用程序。以下代码展示了如何将 appLaunchData
传递给 NowIfp.init()
。
NowIfp.init({ clientId: <"your_clientId"> , appId: <"your_appId"> , iframeParentElement: iframeParentElement, customData: {} // 用于应用特定的自定义处理 appLaunchData: { [key]: [value] } // 启动时传递启动参数给Iframe,它将被序列化并在launch intent传递给应用。 appEventCallback: appEventCallbackFunction, sdkEventCallback: sdkEventCallbackFunction, isNowLoginEnabled: true });
通过这一步,您的应用程序可以获取从HTML页面传递给应用程序的 appLaunchData
。
以下代码片段展示了如何在您的应用程序中使用key来获取value:
//使用key获取作为应用启动参数的value string value = NowGGEventsSdkManager.Instance.GetAppLaunchDataProperty(key);
请参考 :
appLaunchData
仅在应用程序启动时传递,无法在应用程序运行时传递。本节展示了now.gg嵌入模块的演示HTML页面,并解释了与嵌入模块关联的端到端流程。
请按照以下步骤浏览嵌入模块的演示:
appLaunchData
:sdkEventCallback
捕获,如下图所示。appEventCallback
函数捕获,如下图所示: