Ibm mobilefirst 如何从其他适配器调用worklight适配器

如何从一个适配器的方法调用另一个适配器的方法 假设我有两个适配器: 1。具有ReadFile方法的ReadAdapter。 2。具有方法CreateFile的CreateAdapter 现在我想从CreateAdapter的CreateFile方法调用ReadAdapter的ReadFile方法 在Worklight 6.1中是否可能?请查看以下演示文稿,其中概述了此确切行为: Worklight甚至提供了相应的示例来补充演示: 上面的示例显示了具有以下结构的多个适配器的项目: 该示例甚至

Ibm mobilefirst 移动Web应用URL与Worklight Development Server主机名(IP)不匹配

在Windows 7上使用Worklight Studio 6.1.0.1和Eclipse Kepler时,我发现与Worklight Development Server主机IP不一致。我已将主机名从localhost更改为要使用的IP地址。打开Worklight控制台时正在使用该IP地址。但是,我的应用程序包含一个移动Web应用程序,当我在Worklight控制台中单击其“获取应用程序URL”链接时,它会显示一个使用不同IP地址的链接。我有几个具有IP地址的网络适配器—我的有线LAN适配器(

Ibm mobilefirst IBM Worklight 6.1.0.1控制台错误“;无效的权限字段:[http:";

我正在尝试使用WL控制台将一个超级简单的“Hello World”Worklight应用程序(在iPhone和Android环境中)上载到远程服务器(Worklight+DB2)。每次推送.wlapp时,我都会收到以下错误: 未能部署应用程序“HelloWorld all.wlapp”。无效的权限字段:[http: 我已尝试上载带有或不带有以下配置的.wlapp: 工作灯。属性: #publicWorkLightHostname=localhost publicWorkLightHostnam

Ibm mobilefirst Worklight AppCenter能否使用自定义资源调配?

Worklight 6.2关于自由 我可以将AppCenter配置为使用GettingStarted资料中概述的自定义资源调配吗 AppCenter项目中存在server/conf文件夹,因此我似乎可以配置自定义资源调配并构建war。问题似乎是,appcenter客户端 在安全机制方面,像普通worklight客户端一样访问新的appcenter war,新的appcenter war会像普通worklight服务器一样响应这些请求吗?否,IBM worklight Application Ce

Ibm mobilefirst Worklight JSONStore-在什么升级方案下它会永久丢失?

据我所知,Worklight JSONStore仅对混合Worklight应用程序可用 更正:自Worklight 6.2起,混合应用程序和本机应用程序均可使用Worklight JSONStore。我的错误 对于这两种类型的应用程序,在什么应用程序升级情况下,其中的数据会永久丢失?例如,我看到至少三种升级变体: 使用直接更新升级-我假设在这些情况下,JSONStore的内容将保持原样 完全删除应用程序,然后安装新版本-我认为在这种情况下,JSONStore的内容将完全丢失 从AppCenter

Ibm mobilefirst 是否可以使用字符串+;worklight wifi触发区域AccessPoints中作为SSID的通配符?

文档中说,wifi触发器的areaAccessPoints可以设置为{SSID:“*”},与wifi策略中给定的任何SSID匹配,但不能设置其他SSID 我有一个要求,每当用户进入以标准字符串(比如“FreeWifi”)开头的wifi区域时,都要通过wifi触发器通知应用程序 我尝试使用“FreeWifi*”字符串作为areaAccesspoints SSID-{SSID:“FreeWifi*”}。因此,我假设只要用户进入任何FreeWifi热点(如FreeWifi1、FreeWifi2、Fre

Ibm mobilefirst 如何在应用程序中以编程方式获取和设置IBM MobileFirst服务器地址

有一个API在IBM MaBiLe1.1平台基础客户端应用程序库中以编程方式获取并设置WL服务器的完整地址或URL吗?应用程序是连接到的? < P>是的,你可以。从IBM MobileFirst 6.3开始,混合SDK和本机SDK都有了新的API,可以在应用程序运行时设置和获取服务器URL 请参阅此博客帖子: 堆栈溢出阻止链接,让我为您搜索该链接。;) 基本上您有两个API: WL.App.getServerUrl(getServerURLSuccess,getServerURLFailure)

Ibm mobilefirst 无法将项目部署到其他服务器?

我使用MFPStudio7.1开发MFP应用程序。然而,当我想为UAT服务器构建时,我不能 我已尝试将worklight.propertiesinsideserver>conf文件夹中的服务器值更改为相应的服务器URL: publicWorkLightHostname=some.ip.address # HTTP or HTTPS publicWorkLightProtocol=http # For default port leave empty publicWorkLightPort=100

Ibm mobilefirst Worklight 6.2.0.1 MobileWebApp版本

我有一个WL6.2.0.1应用程序,我正在为多个平台开发 每次发布时,我都会增加应用程序版本。但是,我如何为MobileWebApp增加它,因为它总是在版本1.0下 Application-descriptor.xml: <android securityTest="companyTest" version="1.0.5"> . . </android> <mobileWebApp cacheManifest="no-use"/> . . 您无法更改移

Ibm mobilefirst IBM Worklight/Mobilefirst从Worklight 6.1迁移到Mobilefirst 7.1

我计划将现有的worklight 6.1应用程序迁移到mobilefirst 7.1。目前有三个版本的应用程序正在运行 以下是我的参考: 但我将在这个过程中做一些流程更改,因为我有一个新的MobileFirst7.1服务器 与mobilefirst 7.1一样,worklight db与worklight 6.1相比有许多变化,我将首先使用服务器配置工具在mf服务器上创建配置。然后,我将使用最新的mobilefirst 7.1 war为我的应用程序创建一个运行时环境 但在这样做的同时,如果我在

Ibm mobilefirst IBM Mobilefirst MFP_持久数据表

在IBM Mobilefirst数据库表中,ID字段与值字段中的参数“客户端ID”相同 这到底是什么意思?何时以及如何生成?如果移动应用程序没有任何授权,如何使用此客户端id?客户端id是最终用户的标识。MFP服务器将其用作MFP_PERSISTENT_数据表的索引键,以便为最终用户获取正确的数据。 它由服务器在注册过程中生成(客户端第一次访问MFP服务器中的受保护资源时发生)。 至于你的问题,如果应用程序没有授权,如何使用client_id,我假设你的意思是没有安全检查,资源没有保护,因为注册

Ibm mobilefirst IBM MobileFirst 7.1-将Angular 2与混合移动应用程序结合使用

我正在使用MobileFirst平台构建混合移动应用程序,我正在使用AngularJS v1.4进行此操作,现在我想迁移到Angular 2 我使用的是MobileFirst平台eclipse插件 在使用AngularJS时,我曾在lib文件夹中添加angular.js文件 ProjectName/apps/AppName/common/lib/js/angular.js 我搜索了在项目中使用Angular 2的最佳实践,发现了以下存储库: 我的问题:在MFP混合移动应用程序中使用Angula

Ibm mobilefirst WL.Client.createChallengeHandler和Java服务器端API未记录在5.0.6信息中心中

我想知道除了信息中心是否还有其他文档来源。我发现WL.Client.createChallengeHandler根本不在里面。是否有其他未记录的“隐藏”API 另外,Java服务器端API文档仅包含3个接口。JAR库要大得多,但我找不到任何关于它的文档 还是仍在进行中,文档是否正在完成 感谢所有指向其他文档源的指针 我们确实在IBM Worklight信息中心中有针对此特定缺失信息的开放文档任务 您可以在“”下的中找到更多信息和示例代码

Ibm mobilefirst IBM Worklight-如何使用从外部文件获取的适配器域和端口属性?

我有一个网络服务。它的域和端口可以更改。所以我想从文件或数据库中读取端口和域。当这些信息发生变化时,我会在数据库或文件中更新它们 适配器XML: <domain>${adp.hostname}</domain> <port>${adp.port}</port> 这很好用。但是我想从文件或数据库中获取adp.hostname和adp.port。关于适配器,需要记住的是,一旦部署适配器XML,您就不能实时更改它中设置的任何属性 部署适配器后,它将转换

Ibm mobilefirst IBM Worklight 6.1.0.1-“;“未找到文件服务/随机”;面向移动Web环境

我已经在我的应用程序中实现了加密缓存。在移动Web环境中使用设备中的移动浏览器进行测试时,我会遇到以下异常: [错误]FWLSE0048E:捕获到未处理的异常:SRVE0190E:文件未处理 找到:/apps/services/BMA\u app/apps/services/random java.io.FileNotFoundException:SRVE0190E:未找到文件: /应用程序/服务/BMA_应用程序/应用程序/服务/random at com.ibm.ws.webcontaine

Ibm mobilefirst Worklight群集如何在WAS Liberty Core中工作?

全部, 我正在尝试使用WAS Liberty Core设置Worklight群集。到目前为止,我已经在Liberty Core上的两台不同服务器上安装了两台Worklight服务器。我已经将WL配置为指向两个WL安装的相同DB设置 正如我们所知,Liberty Core没有任何网络部署功能,Liberty节点是如何集群的?或者我们根本不需要做这一步 谢谢 保罗?服务器之间互不“了解”。在WebSphereLiberty级别,您有两个独立的应用程序服务器,分别进行管理。您将需要使用某种“喷洒器”前

Ibm mobilefirst 使用固定IP运行Worklight部署服务器以生成War/Wlapp/.适配器文件?

我已经完成了我的项目,现在是时候将东西部署到Websphere服务器上,以托管基于Woklight 6.1.0的Worklight应用程序了 尽管读了下面的问题,我仍然有一个问题。 我必须在其上部署.war、.wlapp和.adapter文件的Websphere服务器是远程服务器,不属于我公司的域。我无法访问客户端提供的IP地址和端口,因此要部署相同的备份,我的备份计划是将文件复制到具有开放网络访问权限的笔记本电脑上,并使用Windows Server IP的RDP进行部署 我的问题是: 随着

Ibm mobilefirst 即使Worklight应用程序未运行(包括未在后台运行),是否可以调用wifi/geo触发器?

在Android中,当某些事件发生时(如wifi扫描结果可用、引导过程完成),可以通过广播接收器机制通知当前未运行的应用程序。无论如何,这是否可行,以便即使Worklight应用程序未运行(包括未在后台运行),也可以调用wifi/geo触发器?关于通知应用程序的wifi/连接更改,这似乎是可能的,因为这是一个标准系统事件。可能需要自定义本机代码,因为您需要实现广播接收器。您需要在应用程序的AndroidManifest.xml文件中注册接收者。看一看 关于地理定位触发器,目前尚不清楚您正在寻找哪

Ibm mobilefirst Worklight Application Center中的默认用户名和密码

我们的团队已经在我们的服务器机器中安装了IBM Worklight server 6.2。安装成功,未发生任何错误 但是,当我们尝试转到Worklight应用程序中心时(localhost:8080/appcenterconsole/j_security_check)。我们已经尝试使用通常的“admin”作为用户名和密码,并尝试了在安装过程中输入的用户名和密码,但我们仍然无法登录到控制台 是否有其他默认用户名和密码?或者我们有没有办法找到/更改用户名和密码?信息中心表明您需要App center

Ibm mobilefirst IBM Worklight:基于适配器的身份验证成功后未获得响应

Worklight Studio 6.0.0.2;Worklight Server 6.0.0;Android上的混合应用程序 最近,我发现基于Worklight适配器的身份验证存在另一种奇怪的行为。如果我在开始时通过了认证,然后在后台运行应用程序,那么下面的7个步骤就不会发生在我身上(以下7个步骤是安东一个答案的副本)。Worklight会话过期后,将应用程序返回前台。此时,当使用WL server重新验证时,第一个请求将不会得到响应 您正在向服务器发出请求#1(比如调用过程) 您将得到aut

Ibm mobilefirst Worklight 6.2 Worklight AuthenticationException

我们使用自定义登录和自定义安全域进行身份验证。一切都很好。但每次启动应用程序并注销时,我们都会在日志中看到以下异常 请告知如何避免这种情况 00001336 com.ibm.ws.webcontainer.util.ApplicationErrorUtils E SRVE0777E: Exception thrown by application class 'com.worklight.core.auth.impl.AuthenticationContext.checkAu

Ibm mobilefirst IBM Mobile First 6.3错误:无法启动运行时环境

我遇到错误“”无法在我的开发环境中启动运行时环境 环境详细信息如下: 日食开普勒 Java:1.7 移动优先:6.3 操作系统:Windows 8这是设置开发环境时经常出现的错误。 尝试在eclipse中切换java运行时。只需重新安装所有内容。看起来像是环境错误。确保在eclipse的windows-->首选项-->常规-->工作区中选择了文本文件编码为“UTF-8”

Ibm mobilefirst 如何运行;“通知”;MF测试服务器(远程服务器)上的示例?

我尝试使用WAS和DB2在MF服务器上运行示例推送通知(来自getting started())。MF Studio Eclipse中的示例在MF开发服务器上工作 问题:在移动设备上获取推送通知 它在默认的MF开发服务器上与MF Studio Eclipse配合使用 它在使用WAS和DB2的MF测试服务器上不起作用 问题:如何在MF测试服务器上运行“PushNotification”示例 给出了以下环境: WL.Logger.debug("submitNotification >&g

Ibm mobilefirst Mobilefirst 7.1适配器-CLI

我正在使用MobileFirst CLI 7.1。我正在学习教程(),几乎所有的东西都很好。我正在使用RSSAdapter,当我将应用程序部署到手机上时,不断出现以下错误: status : 500 responseHeaders {5} X-Powered-By : Servlet/3.0 Content-Type : application/json Content-Length : 430 Connection : Close

Ibm mobilefirst IBM Worklight 6.1对iOS 9的支持

我有一个使用worklight 6.1构建的应用程序,以支持iOS9,据我所知,我们需要首先使用BuildEnviser构建IPA,目标是iOS v9,其次最重要的是,我们需要知道worklight 6.1是否支持iOS 9 SDK。。 根据我掌握的信息,BuildEnviser将在几天内支持iOS测试版。。 是否有人知道worklight 6.1将支持iOS9的任何信息?, 他们是否打算为worklight 6.1提供任何补丁包,或者将如何 任何想法或意见都将对我在不久的将来(9月)开始在iO

Ibm mobilefirst IBM MobileFirst 8.0控制台-com.google.gson.stream.MalformedJsonException

在IBM MobileFirst 8.0控制台中,选择应用程序推送选项卡时 有时会发生以下错误,并且该特定选项卡被卡住,尽管它已配置且工作正常 错误是: com.google.gson.stream.MalformedJsonException:使用JsonReader.setLenient(true)在第1行第8列路径接受格式错误的JSON$ 请检查所附图像是否存在错误: 现在我通过停止mfpserver并重新启动来解决这个问题,所以它工作正常,因为它没有被卡住,错误也得到了解决 请检查所附

Ibm mobilefirst IBM Mobilefirst server安装无法注册应用程序

我刚刚在Windows server 2012上安装了MobileFirst服务器。 我有MySQL作为数据库,ApacheTomcat7作为应用服务器。 我可以访问MobilFirst控制台,但每当我尝试注册一个应用程序时,我都会收到一个错误,上面写着: 连接错误。联系服务器管理员(HTTP代码:405) 如何访问服务器?通过请求?获取AccessToken()?如何访问?我使用WLResourceRequest访问服务器,但这与此无关,因为我认为服务器配置有问题,无法注册应用程序,更不用说让

Ibm mobilefirst IBM MobileFirst 8.0.0-WorkLight Logger和Analytics不工作

我已经在我的ionic应用程序中实现了WL记录器和WL分析。但是日志(客户端+服务器端)没有在控制台上发布 我的步骤如下: 1.我已在控制台上启用MFPLogger。 2.使用初始化WL enter code here WL.Client.init({ onSuccess : function() { WL.Logger.config({ capture: true }); WL.Analytics.init(this); enter code here W

Ibm mobilefirst IBM Worklight-如何重命名应用程序并更改其图标splash image

我们使用了一个现有的示例应用程序来开始Worklight的概念验证,我们对原始代码做了很多更改,我们希望更改应用程序名称并自定义其图标和飞溅图像。我们已经成功地在xCode内部进行了上述更改(名称、图标和飞溅),但是这不符合从Worklight到ipa的自动化构建的未来目的 您能否告知我们以下步骤: 如何在Worklight中重命名现有应用程序(但仅更改application-descriptor.xml不会更改生成的二进制文件) 如何更改应用程序的图标和启动屏幕 当您为Worklight项目创

Ibm mobilefirst 如何获取所选Dojox.mobile.listItem的索引值?

我正在使用DOJO toolkit开发一个worklight项目。因为我是worklight和DOJO的新手,所以我刚刚创建了一个列表,并尝试获取单击列表的索引,以便在下一个视图中显示相应的描述/操作。 我尝试在listItem“onClick”函数中传递索引值,但在传递索引参数后,我无法移动到视图中 HTML文件 <div data-dojo-type="dojox.mobile.ScrollableView" id="view0" data-dojo-props="se

Ibm mobilefirst 适配器无法识别我的java类

我想在适配器中调用java类。我创建了一个名为com.wl.poc.LdapUserCreator的类,并成功地使其在wl服务器中工作(从另一个上下文调用) 在适配器的代码中,我放了以下内容: var url = WL.Server.configuration['com.wl.poc.ldap.providerUrl']; var uidExpression = WL.Server.configuration['com.wl.poc.ldap.uidExpression']; var base

Ibm mobilefirst Worklight v6开发人员参考指南

有一个很好的Worklight开发者参考指南,适用于Worklight的v5版本(在这里找到),但我找不到适用于V6的 有人看到更新了吗 干杯, Susan我认为没有相同的文档,但Worklight 6.0存在。 您是否访问了IBM Worklight信息中心和入门页面 根据Idan的帖子,所有以前的开发者和管理员指南PDF都已合并到Worklight信息中心。所有相同的材料都在那里,只是重新组织,但是如果您发现缺少什么,请发布它,我们可以提供帮助

Ibm mobilefirst 如何在不使用base64编码的情况下通过Worklight server发送图像?

我正在尝试了解如何使用Worklight适配器将图像发送到后端服务器。 我知道我可以使用Base64编码通过Worklight适配器发送它们,但这意味着服务器之间的通信量会增加30%左右,并且会产生一些不必要的处理开销 目前,我正在使用Phonegap FileTransfer库,如下所示,但这会在客户端和后端服务器之间创建直接连接,而不是像我所希望的那样通过Worklight server var options = new FileUploadOptions(); options.fileK

Ibm mobilefirst IBM Worklight-在服务器端包括一个JavaScript库

我正在使用IBM Worklight构建一个移动应用程序。在适配器中,我需要使用第三方JavaScript文件提供的一些功能。我想知道是否有可能在服务器上包含这样的文件?如果没有,还有什么选择?目前,适配器代码中无法包含外部JavaScript库。目前唯一的解决方法是将库代码复制到适配器。在Worklight 6.0.0中,IBM引入了Node.js适配器,鼓吹“大量第三方模块可扩展连接并提供各种常见后端构造的实现”。这听起来像是JS库对我的支持。详情如下: :-|我也很害怕!我的适配器要膨胀了

Ibm mobilefirst IBM Worklight中的模糊处理

虽然我知道破解通过Appstore分发的应用程序的机会非常小,但出于安全原因,我仍然希望混淆我的worklight项目。Worklight Studio中是否有任何内置工具,或者如果没有任何插件,是否可以满足我的要求?混淆不是一种防弹安全措施。无论如何,Worklight不提供这种内置功能,但是您可以按照IBM Worklight博客文章中关于混淆应用程序JavaScript代码的说明进行操作: 从博客帖子: 理解代码混淆非常重要,尤其是在 JavaScript是一种相对较弱的安全措施。最

Ibm mobilefirst 我可以在Worklight Server上安装Worklight mobile browser simulator吗?

当我在Worklight server上预览Android应用程序时,它仍然作为“公共”资源进行预览。 然而,如果我从eclipse在本地机器上执行同样的操作,它将在移动浏览器模拟器中打开 如何在服务器上安装移动浏览器模拟器。我的Worklight server运行在Linux机器上,具有WAS单机版和DB2。MBS是Worklight Development server(用于Eclipse的Worklight Studio插件)的一部分,仅用于开发时间。 MBS在生产环境中不可用 当您将.w

Ibm mobilefirst IBM Worklight-自定义身份验证

当尝试使用自定义验证器和登录模块对适配器进行身份验证时,我遇到以下异常 [ERROR ] FWLST0003E: ========= Failed starting project /CustomAuth [project CustomAuth] Error creating bean with name 'taskManager' defined in URL [wsjar:file:/D:/worklight_workspace/WorklightServerConfig/shared/

Ibm mobilefirst IBM Worklight Studio服务器未启动且未打开Worklight控制台

我最近安装了Eclipse Juno 4.2和IBM Worklight Studio 6.2 我已经创建了一个演示项目,但由于以下原因它没有运行 Worklight服务器未启动 无法打开Worklight控制台 检查附加的屏幕截图是否有错误 1.我已经创建了一个服务器 2.我首先右键点击服务器。 出错 3.我在选项菜单中找不到选项“在IBM WORKLIGHT DEVELOPMENT SERVER上运行” 4.当我尝试打开Worklight控制台时,它会抛出错误 首先,您绝对不需要“

Ibm mobilefirst 使用MobileFirst CLI访问服务器时出错

我用的是mac pro。安装了Yosemite(10.10.3)并安装了MobileFirst 6.3 CLI,以尝试自动化我们的移动项目。我们在mac mini上使用了这个功能,但在mac pro上的相同设置下似乎不起作用(工作的机器是mac mini(10.10.3),安装了Mobile first 6.3 CLI和java 7 u60,与mac pro相同) 似乎有一些奇怪的事情正在发生,但我不完全确定该怎么解决。我得到: 访问错误 : 未找到HTTP/1.1 404 当我尝试在mfp项目

Ibm mobilefirst 如何在后台运行计时器 我想使用IBM Mobile第一平台基金会创建一个移动应用程序。应用程序应该有一个计时器,当我关闭应用程序时,计时器仍在运行。因此,如果这些应用程序长时间未被使用,它将自行卸载。我希望能得到一个如何制作它的想法草案,现在我找不到任何关

如何在后台运行计时器 我想使用IBM Mobile第一平台基金会创建一个移动应用程序。应用程序应该有一个计时器,当我关闭应用程序时,计时器仍在运行。因此,如果这些应用程序长时间未被使用,它将自行卸载。我希望能得到一个如何制作它的想法草案,现在我找不到任何关于它的材料(API或其他…)。提前感谢。 < P>在MaBiLe1.1平台基础上,一般情况下,不可能有应用程序卸载本身。至少你可以在Android中编写一个服务来计时,但不能在iOS中(可能只在iOS 8中有应用程序扩展),但你的场景仍然是无效

Ibm mobilefirst Worklight无法登录到受ltpatoken sso保护的应用程序

尝试测试worklight LTPA sso配置时,我无法登录到我的应用程序。但是,我可以通过LTPA登录到受保护的worklight控制台(无需提示输入用户名/密码),因此我知道LTPA令牌得到了正确验证 当我使用worklight控制台访问受保护的应用程序时,我从common/init和common/login调用中收到500个错误,因为worklight服务器正在向我提出验证问题 这在worklight 6.1.0.2上。我已在此处附上worklight服务器响应的wireshark跟踪:

Ibm mobilefirst 如何在Bluemix中更改同一项目的War文件

我正在将我的第一台移动服务器迁移到bluemix,但我面临一个问题: 每当我尝试更改同一项目的War文件时,每次我都必须创建新容器并将新图像上载到该容器中 我正在运行脚本: initenv.properties prepareserverdbs.properties prepareserver.properties startserver.properties 在startserver.sh中,如果我使用相同的容器来更改War文件,我会得到一个错误,即具有相同的容器的容器已经存在 关于如何更新同

Ibm mobilefirst 移动第一Json商店推送错误

我想强调cordova插件mfp jsonstore中的一个问题 在一些调查过程中,我注意到在PushInstance上的方法sendResourceRequest中,数据没有随 resourceRequest = new WLResourceRequest('adapters/' + invocationData.adapter + '/' + invocationData.procedure, WLResourceRequest.POST); resourceRequest.send().

Ibm mobilefirst IBM MobileFirst平台适配器部署失败。类路径中缺少JMS规范类

我在IBM MobileFirst平台项目中按照 我复制了服务器/lib文件夹中的jar,将它们添加到构建路径中,并对适配器实现进行了更改 但是,当我尝试部署适配器时,会出现以下错误 适配器部署失败:类路径中缺少JMS规范类。确保您的应用程序服务器支持JMS,并且在服务器配置中启用了该功能 我检查了server.xml,JAR被添加到类路径中。不确定是什么导致了问题。您认为不应该同时提及应用程序服务器吗?您是否验证了JMS功能是否已启用?如果是Liberty,请在问题中添加其功能支持的标记。嵌入

  1    2   3   4   5   6  ... 下一页 最后一页 共 30 页