每一个Widget 包必须有一个名为 config.xml (大小写敏感)的配置文件,它位于Widget包的根目录下。该配置文件包含了关于该Widget的重要信息,如:名称、作者信息、描述、云端ID、偏好设置、权限配置、原生插件概览等等,并且该配置文件也是整个Widget的入口。
一个简单的config.xml文件配置清单如下:
<widget id="A12345678901" version="0.0.1">
<name>API Example</name>
<description>
API Example App.
</description>
<author email="developer@yonyou.com" href="//www.yonyou.com">
YonYou.SIR
</author>
<content src="index.html" />
<access origin="*" />
<preference name="windowBackground" value="#FFF" />
<permission name="call" />
<feature name="weiXin">
<param name="urlScheme" value="wx7779c7c063a9d4d9" />
</feature>
</widget>
注:该XML文件必须采用UTF-8编码。
widget父元素描述了该Widget的基本属性,如表1所示。
属性名 | 描述 | 备注 |
---|---|---|
id | 应用ID,由云服务器自动分配。它是该Widget在云端的唯一标识。云服务器根据此ID对Widget进行管理并提供辅助服务,如:更新升级、统计分析、推送服务等。 | 必选 |
version | Widget的版本号 | 必选 |
sandbox | 配置此属性后,应用在运行之初,将会在设备的SD卡上建立与此属性同名的文件夹根目录,并将该目录默认为本应用的沙箱根路径,此后应用运行过程中所有涉及的文件操作如:文件读写,拍照、下载等等,操作结果的文件都将存放在该路径下。该属性仅Android平台生效 | 可选 |
配置中的XML元素如表2所示。
元素名 | 描述 | 备注 |
---|---|---|
name | Widget的名称。如:QQ、新浪微博、微信等 | 必选 |
description | Widget的简单描述信息 | 可选 |
author | Widget的作者信息 | 可选 |
content | Widget运行的起始页,支持相对/绝对路径 | 必选 |
access | 在哪些页面里面可以访问YonBuilder移动开发平台的扩展API。一般配置“*”,代表所有页面都允许访问 | 可选 |
preference | 偏好设置。配置Widget的一些运行时属性,如:页面是否支持弹动效果、窗口默认背景、页面是否显示滚动条等。该配置可在YonStudio的GUI界面中选择并使用。详细请参考Preference Guide | 可选 |
permission | 权限配置。通过此配置向系统声明Widget所用到的系统权限。如:直接拨打电话、直接发送短信、发起定位等。该配置可在YonStudio的GUI界面中选择并使用。详细请参考Platform Permission | 必选 |
feature | 功能配置。通过此配置,向系统声明需要使用哪些功能,以及需要传递给该功能的数据。如:使用新浪微博、使用微信分享等。该配置可在YonStudio的GUI界面中选择并使用。详细请参考Feature Guide | 可选 |
font | 字体配置。通过此配置,将自定义字体加入到应用中,使其可以在前端页面使用该字体 | 可选 |
access用于配置在哪些类型的页面里面可以访问YonBuilder移动开发平台的扩展API方法,如访问api.sms()方法。一般配置“*”,代表所有页面都允许访问
字段名:origin
取值范围:
默认值:*
描述:配置在哪些类型的页面里面可以访问YonBuilder移动开发平台的扩展API方法。
配置示例:
<access origin="local" />
<access origin="http://developer.yonyou.com" />
Preference用于声明本应用的一些全局设置或者属性,该字段以键值对的形式存在。App在启动及运行过程中会随时参考这些属性,以达到应用运行的最优状态。
字段名:appBackground
取值范围:
默认值:rgba(0,0,0,0.0)
描述:配置App的背景颜色或图片,默认为透明色。配置此字段后,如果window的背景为透明色,则将透射出App背景。YonBuilder移动开发平台应用的UI层次结构见图1.
配置示例:
<preference name="appBackground" value="color|imageUrl" />
图1.YonBuilder移动开发平台应用UI层次结构图:
若WindowBackground为透明,那么Window将展示App的背景,同时如果FrameBackground也为透明,那么Frame将展示App的背景。
字段名:windowBackground
取值范围:
默认值:rgba(0,0,0,0.0)
描述:配置Window的背景颜色或图片,默认为透明色。配置此字段后,所有open的Window都会使用该背景,可提高开发效率、节省系统资源、加速渲染速度。
配置示例:
<preference name="windowBackground" value="color|imageUrl" />
字段名:frameBackgroundColor
取值范围:
默认值:rgba(0,0,0,0.0)
描述:配置Frame的背景颜色或图片,默认为透明色。此字段的配置效果等同于对网页的body标签设置background-color。
配置示例:
<preference name="frameBackgroundColor" value="color" />
字段名:pageBounce
取值范围:true|false
默认值:window默认为false,frame默认为true
描述:配置页面是否可以弹动。若不配置,window默认不弹动,frame默认可以弹动;若配置,则window和frame是否可以弹动默认都以此配置的为准。
配置示例:
<preference name="pageBounce" value="false" />
字段名:hScrollBarEnabled | vScrollBarEnabled
取值范围:true|false
默认值:true
描述:配置在页面高度超出视图高度时,window|frame是否显示横|竖滚动条。默认显示。
配置示例:
横向滚动条:
<preference name="hScrollBarEnabled" value="true|false" />
竖直滚动条:
<preference name="vScrollBarEnabled" value="true|false" />
字段名:autoLaunch
取值范围:true|false
默认值:true
描述:YonBuilder移动开发平台应用在启动时向用户展示一个启动界面,并控制该启动界面在适当的时候隐藏。如该字段置为false,则启动页需要开发者自行调相关接口关闭(api.removeLaunchView)。置为true,则引擎自动关闭。默认显示3秒后关闭,如3秒内网页未加载完毕则一直等待,直到网页加载完毕再关闭启动页。
配置示例:
<preference name="autoLaunch" value="true|false" />
字段名:iOS7StatusBarAppearance
取值范围:true|false
默认值:true
描述:配置应用界面是否和设备状态栏重合,表现效果为系统的状态栏是否覆盖在当前应用上。若配置了statusBarAppearance字段,此字段将会忽略。
支持iOS7及以上系统。
配置示例:
<preference name="iOS7StatusBarAppearance" value="true" />
字段名:statusBarAppearance
取值范围:true|false
默认值:true
描述:配置应用界面是否和设备状态栏重合,表现效果为系统的状态栏是否覆盖在当前应用上,即“沉浸式效果”。
支持iOS7及以上、Android4.4及以上系统。
配置示例:
<preference name="statusBarAppearance" value="true" />
字段名:fullScreen
取值范围:true|false
默认值:false
描述:配置应用是否全屏运行。如果该字段为true,应用将以全屏的方式启动,并以全屏方式运行。运行过程中可随时通过YonBuilder移动开发平台开放的API(api.setFullScreen)控制退出全屏或重新进入全屏。云编译有效。
配置示例:
<preference name="fullScreen" value="true|false" />
字段名:autoUpdate
取值范围:true|false
默认值:true
描述:配置应用是否自动检测更新。如果该字段为true,应用在启动时将自动与云端握手,并检查本应用是否有更新,是否被强制关闭,是否强制更新等(以上控制可在云端控制台“版本”中设置)。应用运行过程中会根据这些设置进行相关操作,如:自动下载、强制关闭应用等;若配置为false,则不会弹出任何更新提示。云编译有效。
配置示例:
<preference name="autoUpdate" value="false" />
字段名:smartUpdate
取值范围:true|false
默认值:false
描述:配置应用是否支持增量更新以及云修复。如果该字段为true,应用在启动时将自动与云端握手,并检查本应用当前版本下是否有增量包更新,是否需要进行云修复。应用运行过程中会根据这些设置进行相关操作,如:提示更新下载、静默更新下载等。云编译有效。
配置示例:
<preference name="smartUpdate" value="true" />
字段名:debug
取值范围:true|false
默认值:false
描述:配置应用是否处于调试模式。如果该字段为true,标识应用进入调试模式,应用运行过程中发生的因代码书写失误等原因导致的Js报错(引起执行中断)信息,将会以弹窗的方式覆盖在应用最上方,供开发者参考。
配置示例:
<preference name="debug" value="false" />
字段名:allowKeyboardExtension
取值范围:true|false
默认值:true
描述:配置是否允许使用第三方键盘。若不允许,键盘弹出后将不能选择第三方输入法进行输入。只支持iOS,云编译有效。
配置示例:
<preference name="allowKeyboardExtension" value="false" />
字段名:softInputMode
取值范围:
默认值:auto
描述:配置键盘弹出后页面的处理方式。云编译有效。
配置示例:
<preference name="softInputMode" value="resize"/>
字段名:softInputBarEnabled
取值范围:true|false
默认值:true
描述:配置是否显示键盘上方的工具条。该配置只对通过api对象方法打开的页面有效。只支持iOS。
配置示例:
<preference name="softInputBarEnabled" value="false" />
字段名:dragAndDrop
取值范围:true|false
默认值:false
描述:配置是否允许iOS 11及以上系统中页面元素默认的拖拽行为。只支持iOS。
配置示例:
<preference name="dragAndDrop" value="false" />
字段名:font
描述:用于配置字体文件,配置以后在前端页面里面就可以使用该字体。字体文件需放在widget目录里面,可以同时配置多种字体。
所配置字体在iOS全局有效;Android在Tablayout和使用avm技术开发的页面中有效。
其中,如果要支持Android平台,family字段为必选项,且不支持一个family配置多个字体文件。须在css代码中使用对应的FamilyName对字体进行引用。
配置示例:
//配置一个值:
<preference name="font" family="testFont" value="widget/res/xingkai.ttf" />
//配置多个值,各值之间用竖线 | 隔开:
<preference name="font" family="testFont" value="widget/res/xingkai.ttf | widget/res/lishu.ttf" />
css中使用:
.font-text{
font-size: 18px;
font-family:testFont;
color:#000;
}
字段名:backgroundMode
取值范围:
描述:用于配置iOS后台运行,配置后可以实现后台播放音乐、获取位置信息等功能。云编译有效。
不要随意配置后台运行,因为后台运行的同时也会带来电池续航的问题,苹果公司规定应用使用了后台运行时,必须要在iTunes Connect里应用的描述里面进行声明,否则应用会被拒绝。具体可以参考其他应用如百度地图里面的描述。
配置示例:
//配置一个值:
<preference name="backgroundMode" value="audio"/>
//配置多个值,各值之间用竖线 | 隔开:
<preference name="backgroundMode" value="audio | location"/>
字段名:urlScheme
描述:配置应用的URL Scheme,该scheme用于从浏览器或其他应用中启动本应用,并且可以传递参数数据。此字段云编译有效。
配置后,外部浏览器页面里面就可以通过a标签链接打开应用:
<a href="myscheme://?param1=xxx¶m2=xxx">测试打开应用</a>
配置示例:
<preference name="urlScheme" value="myscheme" />
注意:value的值必须是小写,否则将不起作用。
字段名:querySchemes
描述:iOS9中对检测应用是否安装的方法做了限制,只允许检测在Info.plist中配置过的LSApplicationQueriesSchemes字段(即白名单列表)里面的应用。所以若代码里面调用了api.appInstalled等方法来检测应用是否安装,那么需要在此字段里面配置被检测应用的URL Scheme才能得到期望的结果。此字段云编译有效。
配置示例:
//多个值之间用英文逗号隔开
<preference name="querySchemes" value="weixin,sinaweibo" />
以下是常用的一些应用的URL Scheme可以参考。
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 微信 URL Scheme 白名单-->
<string>wechat</string>
<string>weixin</string>
<!-- 新浪微博 URL Scheme 白名单-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!-- QQ、Qzone URL Scheme 白名单-->
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqzoneopensdk</string>
<!-- 支付宝 URL Scheme 白名单-->
<string>alipay</string>
<string>alipayshare</string>
</array>
字段名:forbiddenSchemes
取值范围:
默认值:不禁止
描述:配置网页里被禁止跳转的URL Scheme。通过配置此字段,可以控制页面里通过a标签等行为能够跳转到哪些第三方应用。此字段不影响api.openApp方法打开第三方应用。
配置示例:
// 禁止所有
<preference name="forbiddenSchemes" value="*" />
// 禁止scheme1和scheme2
<preference name="forbiddenSchemes" value="scheme1,scheme2" />
// 禁止除scheme1和scheme2以外的其它应用
<preference name="forbiddenSchemes" value="^scheme1,^scheme2" />
字段名:userAgent
描述:用于配置User Agent,配置后会更改页面里的User Agent以及ajax请求的User Agent。云编译有效。
若自定义User Agent里面带有双引号等字符,则需要将内容存于一文本文件里面,并将value配置为该文件的路径,注意该文件必须放在widget目录里面,配置时必须以widget://协议开头,这种方式会替换掉默认的User Agent。
配置示例:
//值为文件路径时,默认的User Agent会被替换成文件中的内容
<preference name="userAgent" value="widget://res/ua.txt" />
//值为普通字符串时,内容会被添加到系统默认User Agent的后面
<preference name="userAgent" value="YonBuilder" />
字段名:fileShare
取值范围:true|false
默认值:false
描述:用于配置是否开启iTunes文件共享,开启后可以通过iTunes或者其它手机助手访问应用的文件目录(苹果已经屏蔽各类手机助手对iOS8.3及以上系统的应用文件目录的访问)。 注意:若需要上传AppStore审核,请不要随意配置此项,除非确实需要文件共享功能,否则会被拒绝。云编译有效,只支持iOS。
配置示例:
<preference name="fileShare" value="false" />
字段名:customRefreshHeader
默认值:无
描述:用于配置在页面里面默认使用的自定义下拉刷新原生插件名称,配置后页面里面可以使用指定的下拉刷新原生插件来实现各种各样的下拉刷新效果。使用自定义下拉刷新时,页面里面需调用api.setCustomRefreshHeaderInfo方法。
配置示例:
<preference name="customRefreshHeader" value="UIPullRefresh" />
字段名:launcher
取值范围:true|false
默认值:true
描述:仅Android平台有效。用于配置云编译后的应用在安装到用户手机等设备上后,是否在桌面显示应用图标。如果配置为false,应用安装完后将不会在用户手机桌面显示图标,用户无法直接使用,需被第三方应用调起才能使用。该功能通常用于某主应用管理多个子应用的场景。
配置示例:
<preference name="launcher" value="false" />
字段名:checkSslTrusted
取值范围:true|false
默认值:true
描述:用于配置是否检查https证书是受信任的。如果https服务器端证书不是正规机构颁发的,则需要配置false,否则应用将无法访问数据。
配置示例:
<preference name="checkSslTrusted" value="false" />
字段名:appCertificateVerify
取值范围:true|false
默认值:true
描述:仅iOS平台有效。用于配置是否校验应用证书。若配置为true,应用被重签名后将无法再使用。
配置示例:
<preference name="appCertificateVerify" value="false" />
字段名:android_abi
取值范围:arm64-v8a
默认值:空
描述:仅Android平台有效。用于配置APP支持的CPU架构类型。此前,为减小APK安装包大小,云编译默认只保留armeabi的so库。自2019年8月1日起,Google Play要求APK必须包含64位so库,否则将拒绝上线。您的应用可通过配置android_abi字段,支持编译64位so库到APK以适配Google Play政策。
配置示例:
<preference name="android_abi" value="arm64-v8a"/>
字段名:interfaceStyle
取值范围:
默认值:Light
描述:仅支持iOS 13及以上系统,云编译生效。用于全局配置当前应用程序的用户界面风格。
配置示例:
<preference name="interfaceStyle" value="Automatic"/>
字段名:useWKWebView
取值范围:true|false
默认值:false
描述:若配置为true,加载页面时将默认使用WKWebView。API.js中的WKWebView介绍
配置示例:
<preference name="useWKWebView" value="true"/>
字段名:WKWebViewRecoveryMode
取值范围:
reload // 重新刷新白屏的页面。可通过api.isRecoveryMode属性判断是否是恢复模式。
rebootApp // 热重启应用
none // 不做处理
默认值:reload
描述:WKWebView加载的页面的渲染进程是独立于当前App的,当系统内存不足时,系统可能会结束掉该进程进行回收,从而导致该页面白屏。可通过配置此字段来刷新页面或热重启整个应用,该配置只当应用在前台运行时有效,若应用在后台时有页面白屏,则回到前台时会直接进行热重启。
配置示例:
<preference name="WKWebViewRecoveryMode" value="rebootApp"/>
字段名:avm
取值范围:true|false
默认值:false
描述:若配置为true,加载页面时将默认使用原生渲染引擎,页面必须是使用avm框架语法生成。当配置为true后,若打开某页面时想使用系统WebView来加载,则avm参数需主动传false。
配置示例:
<preference name="avm" value="true"/>
字段名:privacyPromptMode
取值范围:
none // 不使用隐私政策弹框
custom // 自定义隐私政策弹框
默认值:none
描述:若配置为 custom,表示应用添加了隐私政策弹框,应用在第一次启动时引擎会查找 widget/pages/privacy/privacy.stml 文件是否存在,若存在则会先显示该页面,开发者可在该页面实现自定义的隐私弹框,此时一些操作如版本和云修复检测、原生插件初始化等会被延后;若 privacy.stml 文件不存在,则会正常加载首页,引擎会认为开发者在首页实现了隐私政策弹框,此时版本和云修复检测会被延后。等用户同意隐私政策后,前端需调用 api.agreedPrivacy 方法,通知引擎用户已同意隐私政策,引擎会记录状态并执行之前延后的操作。
配置示例:
<preference name="privacyPromptMode" value="custom"/>
Feature用于声明本应用使用到的平台扩展原生插件功能、第三方SDK等接入规范、运行时组件,并声明该原生插件默认需要传入的参数及值(param),每个Feature对应一个或多个参数值。YonBuilder移动应用通过这些原生插件为用户提供特定的功能。
name:原生插件名称。
forceBind:表示是否强制绑定原生插件,为true时在网站上面该原生插件会被自动勾选上且不能去掉,默认值为true。
platform:配置云编译时使用该原生插件的平台,取值范围all、ios、android,默认值为all。例如应用里面有虚拟类商品时,安卓平台可以使用支付宝、微信等第三方支付原生插件,而iOS要上架AppStore则必须使用苹果内购,并且安装包内也不能包含支付宝、微信支付等资源。此时则可以配置支付宝、微信支付原生插件对应feature的platform字段值为android,这样云编译iOS包时不会将支付宝、微信支付原生插件编译进去。
配置示例:
<feature name="moduleName" forceBind="false" platform="all">
<param name="xxx" value="xxx" />
</feature>
名称:weiXin
参数:urlScheme
描述:配置微信专用的URL Scheme,使得本应用可以启动微信客户端,并与之交换数据,同时可以从微信客户端返回到本应用
配置示例:
<feature name="weiXin">
<param name="urlScheme" value="wx7779c7c063a9d4d9" />
<param name="apiKey" value="wx7779c7c063a9d4d9" />
<param name="apiSecret" value="a354f72aa1b4c2b8eaad137ac81434cd" />
</feature>
字段描述:
名称:sinaWeiBo
参数:urlScheme
描述:配置新浪微博专用的URL Scheme,以及apiKey,使得本应用可以启动新浪微博客户端,并与之交换数据,同时可以从新浪微博客户端返回到本应用
配置示例:
<feature name="sinaWeiBo">
<param name="urlScheme" value="wb1464272715" />
<param name="apiKey" value="1464272715" />
</feature>
字段描述:
名称:baiduLocation
参数:apiKey
描述:配置百度定位功能必须的apiKey,该key需要在百度开放平台申请,申请细则请参考百度开放平台相关文档。
配置示例:
<feature name="baiduLocation">
<param name="apiKey" value="fef72715gshjelke" />
</feature>
字段描述:
名称:baiduMap
参数:apiKey
描述:配置百度地图原生插件必须的apiKey,该key需要在百度开放平台申请,申请细则请参考百度开放平台相关文档。
配置示例:
<feature name="baiduMap">
<param name="android_api_key" value="fef72715gshjelke" />
<param name="ios_api_key" value="fef72715gshjelke" />
</feature>
字段描述:
名称:aliPay
参数:urlScheme
描述:配置支付宝专用的URL Scheme,使得本应用可以启动支付宝客户端,并与之交换数据,同时可以从支付宝客户端返回到本应用
配置示例:
<feature name="aliPay">
<param name="urlScheme" value="AliPay + widgetId" />
</feature>
字段描述:
名称:qq
参数:urlScheme
描述:配置qq专用的URL Scheme,以及apiKey,使得本应用可以启动QQ客户端,并与之交换数据,同时可以从QQ客户端返回到本应用
配置示例:
<feature name="qq">
<param name="urlScheme" value="tencent123345678" />
<param name="apiKey" value="123345678" />
</feature>
字段描述:
名称:ajpush
参数:channel、app_key
描述:配置使用极光推送所需的app_key以及统计用的渠道号,app_key需要在极光推送官网申请,channel用于极光官网统计分发渠道
配置示例:
<feature name="ajpush">
<param name="channel" value="developer-yonbuilder" />
<param name="app_key" value="2878d6d8bc2556b577a53e05" />
</feature>
字段描述:
名称:rongCloud
参数:appKey
描述:配置融云开发者平台上申请的 App Key 值
配置示例:
<feature name="rongCloud">
<param name="appKey" value="此处填写App Key 值" />
</feature>
Permission用于声明本应用用到的所有系统权限。YonBuilder移动开发平台开放的API接口以及提供的服务或者功能中,可能需要向操作系统申请某些权限,YonBuilder移动开发平台将这些权限归类并抽象后提供给开发者,开发者通过简单的字段声明,YonBuilder移动开发平台云端在编译应用时,将会判别permission字段并给应用安装包添加相应的系统权限(即应用安装时,系统向用户展示的权限列表)。
权限名称:readPhoneState
权限描述:允许该应用访问设备的电话功能。此权限可以让该应用确定本机号码和设备ID、是否处于通话状态以及拨打的号码
使用该权限的接口:api.ajax()、api.download()、api.getLocation()
是否敏感:否
配置示例:<permission name="readPhoneState" />
权限名称:call
权限描述:允许应用在用户未执行操作的情况下直接拨打电话号码。此权限可能会导致意外收费或呼叫。此权限不允许该应用拨打紧急电话号码。
使用该权限的接口:api.call()
是否敏感:是
配置示例:<permission name="call" />
权限名称:sms
权限描述:允许该应用在用户不知情的情况下直接发送短信。此权限可能会导致意外收费。
使用该权限的接口:api.sms()
是否敏感:是
配置示例:<permission name="sms" />
权限名称:camera
权限描述:允许该应用使用相机拍摄照片和视频。此权限可以让应用随时使用相机,而无需用户确认。
使用该权限的接口:api.getPicture()
是否敏感:否
配置示例:<permission name="camera" />
权限名称:record
权限描述:允许该应用访问设备的麦克风,并进行录音。该权限可能导致用户隐私的泄露。
使用该权限的接口:api.startRecord()
是否敏感:否
配置示例:<permission name="record" />
权限名称:location
权限描述:允许该应用访问位置提供程序根据GPS、基站和WLAN等网络源确定用户的的大概或者精确位置,当这些位置服务可用且处于启用状态时,此权限可让该应用确定用户的位置。使用该类服务时,用户的设备也会消耗更多的电量。
使用该权限的接口:api.startLocation()、api.getLocation()
是否敏感:是
配置示例:<permission name="location" />
权限名称:fileSystem
权限描述:允许应用读取或写入内部存储及外部SD卡。
使用该权限的接口:api.readFile()、api.writeFile()、api.startRecord()、api.getPicture()
是否敏感:否
配置示例:<permission name="fileSystem" />
权限名称:internet
权限描述:允许应用创建网络套接字和使用自定义网络协议。查看网络连接的相关信息,查看WLAN状态、更改WLAN状态,更改网络设置,访问设备WIFI信息等。
使用该权限的接口:api.ajax()、api.download()、api.startLocation()、api.getLocation()
是否敏感:否
配置示例:<permission name="internet" />
权限名称:bootCompleted
权限描述:允许该应用在系统启动完成后立即自动启动。这可能会导致延长手机的启动时间,并允许应用始终运行,从而导致手机总体运行速度减慢。
使用该权限的接口:基于推送的相关服务
是否敏感:否
配置示例:<permission name="bootCompleted" />
权限名称:hardware
权限描述:允许应用控制闪光灯、振动器、防止手机休眠等。
使用该权限的接口:api.getPicture()、基于推送的相关服务
是否敏感:否
配置示例:<permission name="hardware" />
权限名称:contact
权限描述:允许该应用访问和修改用户手机上存储的联系人的相关数据。
使用该权限的接口:api.openContacts()
是否敏感:是
配置示例:<permission name="contact" />
meta-data用于配置Android平台上对应AndroidManifest文件中的meta-data相关键值对。
在config中每配置一项,云编译服务器在编译apk包之前,会将meta-data相关的配置,映射到AndroidManifest文件中的meta-data节点中。如:我们在config中配置<meta-data android:name="kkkk" android:value="vvvv" />
以此类推。
该配置一般用于引入第三方服务的SDK原生插件时,配置相应原生插件所需的meta-data。也可用于配置渠道号等。
配置示例:
<meta-data name="KKKK" value="VVVV"/>
字段描述:
该配置使用时需要Android原生开发人员参与。
intent-filter用于配置Android平台相应的AndroidManifest文件中,YonBuilder移动端引擎主Activity的intent-filter相关信息。
在config中每配置一项,云编译服务器在编译apk包之前,会将intent-filter相关的配置,新增并映射到AndroidManifest文件中,引擎主Activity的intent-filter节点。如:我们在config中配置:
<intent-filter>
<action name="android.intent.action.MAIN"/>
<category name="android.intent.category.DEFAULT"/>
<data scheme="http" mimeType="text/html"/>
</intent-filter>
将映射至Android平台的AndroidManifest中引擎主Activity的intent-filter,类似:
<activity android:name="com.uzmap.pkg.EntranceActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" android:mimeType="text/html"/>
</intent-filter>
</activity>
config中每配置一项intent-filter,该节点下新增一项intent-filter。
该配置一般用于配置本应用被其他应用调起时的响应类型,比如响应一个“打开”的操作,或者一个“发送”的操作等。
配置示例:
<intent-filter>
<action name="android.intent.action.MAIN"/>
<category name="android.intent.category.DEFAULT" />
<category name="com.ibm
open"/>
<data scheme="http" mimeType="text/html" host="baidu" path="/" />
</intent-filter>
字段描述:
完整的config文件参考:
<widget id="A12345678901" version="0.0.1">
<name>API Example</name>
<description>
API Example App.
</description>
<author email="developer@youyou.com" href="//www.yonyou.com">
YonYou.SIR
</author>
<content src="index.html" />
<access origin="*" />
<preference name="pageBounce" value="false" />
<preference name="appBackground" value="#000" />
<preference name="windowBackground" value="rgba(0,0,0,0.0)" />
<preference name="frameBackgroundColor" value="rgba(0,0,0,0.0)" />
<preference name="hScrollBarEnabled" value="true" />
<preference name="vScrollBarEnabled" value="true" />
<preference name="autoLaunch" value="true" />
<preference name="autoUpdate" value="true" />
<preference name="smartUpdate" value="false" />
<preference name="fullScreen" value="false" />
<preference name="statusBarAppearance" value="true" />
<preference name="softInputMode" value="resize"/>
<preference name="debug" value="true"/>
<permission name="readPhoneState" />
<permission name="call" />
<permission name="sms" />
<permission name="camera" />
<permission name="record" />
<permission name="location" />
<permission name="fileSystem" />
<permission name="internet" />
<permission name="bootCompleted" />
<permission name="hardware" />
<permission name="contact" />
<feature name="weiXin">
<param name="urlScheme" value="wx7779c7c063a9d4d9" />
<param name="apiKey" value="wx7779c7c063a9d4d9" />
</feature>
<feature name="sinaWeiBo">
<param name="urlScheme" value="wb1062272715" />
<param name="apiKey" value="1062272715" />
</feature>
<feature name="aliPay">
<param name="urlScheme" value="AliPayA00000000001" />
</feature>
<feature name="baiduLocation">
<param name="apiKey" value="fef72715gshjelke" />
</feature>
<feature name="baiduMap">
<param name="android_api_key" value="fef72715gshjelke" />
<param name="ios_api_key" value="fef72715gshjelke" />
</feature>
<feature name="qq">
<param name="urlScheme" value="tencent9c7c063a9d4d9" />
<param name="apiKey" value="9c7c063a9d4d9" />
</feature>
</widget>