公测-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>
还需要帮助吗? 联系我们
最新更新 8th Jul 2021