- 公测-configxml配置插件以及iOS支持swift
- 本次打包服务器公测内容 整理如下
- config.xml——Key值配置
- config.xml——UrlScheme配置
- config.xml——权限配置
- swift支持
- 附录 一份完整的config.xml配置示例
- 公测对象1:config.xml——Key值配置
- 目的
- 适用平台
- 针对人群
- 使用方法
- 示例
- 安卓极光推送测试:(官网公共插件已经支持)
- iOS极光推送测试:(官网公共插件已经支持)
- iOS高德地图参考测试:(官网公共插件已经支持)
- 安卓高德地图参考测试:(官网公共插件已经支持)
- 备注
- 本次公测仅支持极光推送、高德插件,但所有需要配置key的插件会逐渐发布新版本以支持此配置方式,包括但不限于
- 公测对象2: config.xml——UrlScheme配置
- 目的
- 适用平台
- 针对人群
- 使用方法
- 示例
- 备注
- 现有的插件(如uexQQ,uexWeiXin等)均支持此配置,不用做额外修改
- 公测对象3:config.xml——权限配置
- 目的
- 适用平台
- 针对人群
- 使用方法
- 示例
- 备注
- 本次打包服务器公测内容 整理如下
- 公测对象4:swift支持
公测-configxml配置插件以及iOS支持swift
本次打包服务器公测内容 整理如下
config.xml——Key值配置
config.xml——UrlScheme配置
config.xml——权限配置
swift支持
附录 一份完整的config.xml配置示例
公测对象1:config.xml——Key值配置
目的
- 规避现在部分需要配置key的插件(如
百度地图
、高德地图
等等)需要下载插件包,进行修改key值操作,然后将插件作为自定义插件上传使用
这一繁琐过程。
适用平台
- 安卓&iOS
针对人群
- App前端开发者
使用方法
- 向config.xml中添加相应字段,即可完成对插件的key值配置操作
示例
安卓极光推送测试:(官网公共插件已经支持)
公测所用的测试插件为极光推送,测试版本为安卓:uexJPush-3.0.4 (见公测贴链接附件)
示例代码如下:用户需要在 config.xml 中添加:
<config desc="uexJPush" type="KEY">
<param platform="Android" name="$UEXJPUSH_PACKAGE$" value="org.zywx.wbpalmstar.widgetone.uexJPushDemo"/>
<param platform="Android" name="$UEXJPUSH_APPKEY$" value="e905af7390a3413439d24377"/>
</config>
并把org.zywx.wbpalmstar.widgetone.uexJPushDemo 换成自己应用的包名、把 e905af7390a3413439d24377 换成极光推送官网申请的appkey。
iOS极光推送测试:(官网公共插件已经支持)
- 公测所用的测试插件为
极光推送
,测试版本为iOS:uexJPush-3.0.2
(见公测贴链接附件) - 示例代码如下:
<config desc="uexJPush" type="KEY">
<param platform="iOS" file="uexGroupfolder/PushConfig.plist" name="$UEXJPUSH_APP_KEY$" value="29f3d28136125dad137a42df"/>
<param platform="iOS" file="uexGroupfolder/PushConfig.plist" name="$UEXJPUSH_PUSH_CHANNEL$" value="TestPush"/>
<param platform="iOS" file="uexGroupfolder/PushConfig.plist" name="$UEXJPUSH_APS_ENVIRONMENT$" value="1"/>
</config>
- 用户只需修改value的值即可完成相应key的配置,其中
$UEXJPUSH_APP_KEY$ -->iOS的AppKey 填在极光推送官网上注册后得到的iOS AppKey
$UEXJPUSH_PUSH_CHANNEL$ --> apns推送频道 填任意字符串
$UEXJPUSH_APS_ENVIRONMENT$ -->推送证书类型 0-开发者证书(developement) 1-发布证书(distribution)
iOS高德地图参考测试:(官网公共插件已经支持)
- 公测所用的测试插件为高德地图,测试版本为iOS:uexGaodeMap-3.0.2 (见公测贴链接附件)用户需要将如下字段中的XXX替换为自己申请的key,然后添加至config.xml中:
<config desc="uexGaode" type="KEY" >
<param platform="iOS" name="$uexGaodeMap_APIKey$" value="XXX"/>
</config>
安卓高德地图参考测试:(官网公共插件已经支持)
- 公测所用的测试插件为高德地图,测试版本为安卓:uexGaodeMap-3.0.5 (见公测贴链接附件)用户需要将如下字段中的XXX替换为自己申请的key,然后添加至config.xml中:
<config desc="uexGaode" type="KEY" >
<param platform="Android" name="$uexGaodeMap_APIKey$" value="XXX"/>
</config>
备注
本次公测仅支持极光推送、高德插件,但所有需要配置key的插件会逐渐发布新版本以支持此配置方式,包括但不限于
- uexBaiduMap 百度地图(Android,iOS)
- uexEasemob 环信(Android)
公测对象2: config.xml——UrlScheme配置
目的
- 为用户提供一个
自定义UrlScheme
的接口 - 规避现在部分需要配置UrlScheme的插件(如
微信
、QQ
等等)需要下载插件包,进行修改UrlScheme操作,然后将插件作为自定义插件上传使用
这一繁琐过程。
Url Scheme:可以通过Url Scheme从一个应用打开另一个应用,并实现应用间的数据传递。
比如在微信支付过程中,App用过uexWeiXin插件打开微信客户端进行支付,支付过程完成后,微信客户端通过应用自定义的UrlScheme返回到本
App,并传回支付结果
适用平台
- iOS
针对人群
- App前端开发者
使用方法
- 向config.xml中添加相应字段,即可完成对应用的的UrlScheme配置操作
示例
- 示例代码如下
<config desc="uexQQ" type="URLSCHEME">
<urlScheme name="uexQQ" schemes="['A123124','Tencent24asd3431']"/>
</config>
- desc 和name均为描述性字段,可任意修改
- schemes为数组结构的字符串,
每一个自定义UrlScheme用单引号(')包含起来,多个UrlScheme之间用逗号(,)隔开,然后所有这些UrlScheme用中括号([])再包括进去
- 以上述配置为例,假设应用A中有进行此UrlScheme配置,在另一个应用B中,通过引擎的JS方法
uexWidget.loadApp('A123124:');
即可打开应用A(注意不要漏掉冒号!)
备注
现有的插件(如uexQQ,uexWeiXin等)均支持此配置,不用做额外修改
公测对象3:config.xml——权限配置
目的
- 为用户提供
自定义应用权限
的接口
适用平台
- iOS
针对人群
- App前端开发者
使用方法
- 向config.xml中添加相应字段,即可完成对应用的的权限配置操作
示例
- 示例代码如下
<config desc="bgConfig" type="AUTHORITY">
<permission platform="iOS" info="backGroundMode" flag="111"/>
</config>
- info 配置内容 目前仅支持
backGroundMode
,既后台权限配置 - flag 配置参数
backGroundMode
后台权限的参数说明如下flag 解释 备注 1 后台音乐播放 2 后台定位 4 后台VoIP服务 8 后台新闻更新 16 后台与iOS配件进行交互 32 后台与蓝牙设备进行交互 64 后台通过蓝牙发送广播 128 后台下载内容 仅iOS 7.0+支持 256 通过点击推送消息后台下载内容 仅iOS 7.0+支持
备注
- 用户需慎重配置后台权限,不当的配置会影响上架AppStore
- 其他iOS权限配置已预留接口,待调研确实有相应需求后,再修改打包服务器进行下一次公测
公测对象4:swift支持
目的
- 支持开发者用swift和oc混编进行原生插件开发
适用平台
- iOS
针对人群
- iOS原生插件开发者
使用方法
- 插件的接口文件
uexXXX.m
还是要用oc编写 oc和swift混编的头文件可以用Xcode生成的,也可以自己编写,但一定要将此头文件单独分离出来,例如存为
uexXXXSwift.h
(以下均用.h
来代表此头文件)在每个调用了swift方法的oc文件中引用
.h
- 将此
.h
添加至生成静态库的工程中 - 在插件目录下新建
uexSwift
,并将所有的.swift文件
复制至此目录中 - 此目录中的.swift文件会被添加至打包工程并参与编译
示例
uexChart-3.0.0
此插件封装的一个开源swift库ios-charts,用以提供各种图表功能。
开发者可以查看此插件的源码来了解具体封装方法
备注
由swift特性所限,用此方法开发的插件需求系统版本至少为iOS 7.0+
附录一份完整的config.xml配置示例
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<widget appId="10030629" channelCode="000" version="0.1" widgetId="">
<name>测试uexDemo</name>
<description>测试插件Demo</description>
<author email="3g2win@mail.com">3g2win</author>
<icon src="icon.png"/>
<license href="http://3g2win.com"/>
<content encoding="utf-8" src="index.html"/>
<logserverip/>
<obfuscation>false</obfuscation>
<updateurl/>
<showmyspace>true</showmyspace>
<bgcolor>#fefefe</bgcolor>
<widgetOne version="[widgetOneVersion]"/>
<orientation>1</orientation>
<config desc="uexJPush" type="KEY">
<param platform="iOS" file="uexGroupfolder/PushConfig.plist" name="$UEXJPUSH_APP_KEY$"
value="29f3d28136125dad137a42df"/>
<param platform="iOS" file="uexGroupfolder/PushConfig.plist" name="$UEXJPUSH_PUSH_CHANNEL$" value="TestPush"/>
<param platform="iOS" file="uexGroupfolder/PushConfig.plist" name="$UEXJPUSH_APS_ENVIRONMENT$" value="1"/>
</config>
<config desc="uexGaode" type="KEY" >
<param platform="iOS" name="$uexGaodeMap_APIKey$" value="填写你申请的appkey"/>
</config>
<config desc="bgConfig" type="AUTHORITY">
<permission platform="iOS" info="backGroundMode" flag="111"/>
</config>
<config desc="uexQQ" type="URLSCHEME">
<urlScheme name="uexQQ" schemes="[`A123124`,`Tencent24asd3431`]"/>
</config>
</widget>