这里使用编码工具APICloud stuio
官方loader中只会包含一些基础的模块供用户使用,而一当你要使用到一些第三方模块时就会发现,在控制台中绑定了第三方模块,也在配置文件config中引入该模块,但是用官方的AppLoader调试时就会报错
所以我们才需要使用到自定义loader
想了解更多关于官方loader和自定义loader的同学可以官方文档里看看,懒得找的同学戳这 自定义loader说明
这里需注意一点,任何一个应用有且只有一个自定义loader
首先,我们需要先去控制台随便添加一个模块,这里选择添加百度地图的定位模块bmLocation,
使用这个模块需要前往百度地图开发平台申请一个ak码,到时候配置config文件的时候要用到这个ak码,否则无法引用这个第三方的sdk
config文件中需添加如下代码来引用bmLocation模块
"com.baidu.lbsapi.API_KEY" value="uOIxNnQGFhxejgQZcjc9DtzvhNNeXM1G"/>
//*value就是你申请的ak码*
这里编写一段利用bmLocation模块获取本地位置的代码,等会用来测试模块是否调用成功,模块使用方法详情请戳 bmLocation说明
var bmLocation = api.require("bmLocation");//导入模块
bmLocation.configManager({//配置定位参数
accuracy: 'device_sensors',
filter: 1,
activityType: 'automotiveNavigation',
coordinateType: 'GCJ02',
locationTimeout: 10,
reGeocodeTimeout: 10
});
bmLocation.singleLocation({//单次定位,获取位置
reGeocode: false,
netWorkState: false
}, function(ret) {
var sta = ret.status;
if (sta) {
console.log(JSON.stringify(ret.reGeo));
var country = ret.reGeo.country;
var province = ret.reGeo.province;
var city = ret.reGeo.city;
var district = ret.reGeo.district;
var street = ret.reGeo.street;
var pos = ret.reGeo.poiList[0].name;
var str = country + "," + province + "," + city + "," + district + "," + street;
api.alert({
msg: str
});
} else {
api.alert({
msg: '定位发生错误'
});
}
});
将自己编写好的的代码检出,APICloud studio有代码检出的功能,如下图
或者也可以先把代码上传到代码托管平台GitHub上,然后再到控制台中上传代码,如下图
根据需要选择相应的系统,这里只测试安卓Android系统,务必勾选 【升级环境编译】
注意要使用自定义loader的应用要先配置完icon,启动页面等端设置,如图
编译完成之后下载apk,并安装到模拟器或手机上,安装有时会出现签名认证不用不给安装的情况 (先前用官方loader调试的widget还存在,导致冲突),这时我们只需删掉手机文件中的UZMap,然后再安装即可