佳明表盘的如何加入设置页,怎么控制功能付费
如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!
佳明表盘的如何加入设置页,怎么控制功能付费
在基本学会制作表盘之后,就需要给表盘加入一个设置页的功能了,这里需要可以查看序列号,填写解锁码,因为只有这样才能引入“付费”的概念。表盘自动生产序列号,用户付费后获得解锁码,二者匹配的上就是付费用户,否则为未付费用户,大多数付费表盘开发者都是这么实现的。
Connect IQ出现“设定”选项
只需要xml文件配置properties就好了,代码如下
layouts/settings.xml
<settings>
<setting propertyKey="@Properties.sn" title="@Strings.sn">
<settingConfig type="alphaNumeric" readonly="true"/>
</setting>
<setting propertyKey="@Properties.key" title="@Strings.key">
<settingConfig type="alphaNumeric"/>
</setting>
<setting propertyKey="@Properties.activityType" title="@Strings.activityType" prompt="@Strings.activityTypePrompt">
<settingConfig type="list">
<listEntry value="0">@Strings.Running</listEntry>
<listEntry value="1">@Strings.Cycling</listEntry>
</settingConfig>
</setting>
</settings>
layouts/properties.xml
<properties>
<property id="appVersion" type="string">0.0.1</property>
<property id="sn" type="string"></property>
<property id="key" type="string">0</property>
<property id="activityType" type="number">0</property>
<property id="myString" type="number">1</property>
<property id="myString2" type="string">1</property>
<property id="myString3" type="string">1</property>
</properties>
layouts/strings.xml
<strings>
<string id="AppName">face</string>
<string id="sn">序列号</string>
<string id="key">解锁码</string>
<string id="activityType">运动类型</string>
<string id="activityTypePrompt">请选择常用的运动类型</string>
<string id="Running">跑步</string>
<string id="Cycling">骑自行车</string>
<string id="Zone1">faZone1ce</string>
<string id="Zone2">Zone2</string>
<string id="MyStringTitle">MyStringTitle</string>
<string id="MyStringPrompt">MyStringPrompt</string>
</strings>
效果如下 此时我们已经让自己的表盘在佳明的Connect IQ上有一个设定页面了
打开“设定”就能看到那几个property了
可以看出来,Connect IQ这个app其实就是读取表盘里面要求的property数据,对此进行回显和支持输入而已。
手表上出现“自定义”选项
如果想在手表设置的表盘的时候支持“自定义”,就需要通过重写faceApp的getSettingsView
了
代码如下 faceApp.mc
function getSettingsView() {
return [new SLeanSettingsMenu(),new SLeanSettingsMenuDelegate()];
}
SLeanSettingsMenu.mc
import Toybox.WatchUi;
class SLeanSettingsMenu extends WatchUi.Menu2 {
function initialize() {
Menu2.initialize(null);
Menu2.setTitle("Settings");
Menu2.addItem(new WatchUi.ToggleMenuItem("Show Seconds When Possible", null,"sec", true, null));
//other things
}
}
SLeanSettingsMenuDelegate.mc
import Toybox.WatchUi;
class SLeanSettingsMenuDelegate extends WatchUi.Menu2InputDelegate {
function initialize() {
Menu2InputDelegate.initialize();
}
function onSelect(item) {
var id=item.getId();
if(id.equals("sec")) {
// MySettings.showSecs=!MySettings.showSecs;
// MySettings.writeKey(MySettings.showSecsKey,MySettings.showSecs);
}
}
function onBack() {
WatchUi.popView(WatchUi.SLIDE_IMMEDIATE);
// return false;
}
}
效果如下
- 分类:
- 佳明
更新时间:
上一篇:下一篇: