HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

新手调用Native.js, startService 不能启动服务

service

今天参照 http://ask.dcloud.net.cn/question/433 中所给的方式开启后台服务。本地打包后发现在执行main.startService(intent); 后服务没有正常执行, 将代码防盗android 里面后确定执行成功,但是服务未启动。

找了一下午终于发现问题,需要在AndroidManifest.xml 声明服务如下
<service android:name="io.dcloud.HBuilder.Wiedii.MsgService" android:exported="true" />

见:http://www.cnblogs.com/lwbqqyumidi/p/4181185.html

继续阅读 »

今天参照 http://ask.dcloud.net.cn/question/433 中所给的方式开启后台服务。本地打包后发现在执行main.startService(intent); 后服务没有正常执行, 将代码防盗android 里面后确定执行成功,但是服务未启动。

找了一下午终于发现问题,需要在AndroidManifest.xml 声明服务如下
<service android:name="io.dcloud.HBuilder.Wiedii.MsgService" android:exported="true" />

见:http://www.cnblogs.com/lwbqqyumidi/p/4181185.html

收起阅读 »

IOS使用openURL打开百度地图的坑,已解决!

function openBMap(lon, lat, title, address) {
var url=null,id=null,f=null;
address = address == ''? title: address;
switch ( plus.os.name ) {
case "Android":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/android
url = "baidumap://map/marker?location=" + lat + "," + lon + "&title=" + title + "&content=" + address + "&src=wz";
f = androidMarket;
id = "com.baidu.BaiduMap";
break;
case "iOS":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/ios
url = "baidumap://map/marker?location=" + lat.toFixed(6) + "," + lon.toFixed(6) + "&title=" + title + "&content=" + address + "&src=wz";
// url = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&content=%e6%89%93%e9%80%a0HTML5%e6%9c%80%e5%a5%bd%e7%9a%84%e7%a7%bb%e5%8a%a8%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7&src=HelloH5";
f = iosAppstore;
id = "itunes.apple.com/cn/app/bai-du-de-tu-yu-yin-dao-hang/id452186370?mt=8";
break;
default:
return;
break;
}
url = encodeURI(url); //重点在这一句,如果不加,android没问题,但是ios打不开,每次提示未安装,所以同学们要注意了
console.log(url);
plus.runtime.openURL( url, function(e) {
plus.nativeUI.confirm( "检查到您未安装百度地图,是否到商城搜索下载?", function(i){
if ( i.index == 0 ) {
f(id);
}
} );
} );
}

继续阅读 »

function openBMap(lon, lat, title, address) {
var url=null,id=null,f=null;
address = address == ''? title: address;
switch ( plus.os.name ) {
case "Android":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/android
url = "baidumap://map/marker?location=" + lat + "," + lon + "&title=" + title + "&content=" + address + "&src=wz";
f = androidMarket;
id = "com.baidu.BaiduMap";
break;
case "iOS":
// 规范参考官方网站:http://developer.baidu.com/map/index.php?title=uri/api/ios
url = "baidumap://map/marker?location=" + lat.toFixed(6) + "," + lon.toFixed(6) + "&title=" + title + "&content=" + address + "&src=wz";
// url = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&content=%e6%89%93%e9%80%a0HTML5%e6%9c%80%e5%a5%bd%e7%9a%84%e7%a7%bb%e5%8a%a8%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7&src=HelloH5";
f = iosAppstore;
id = "itunes.apple.com/cn/app/bai-du-de-tu-yu-yin-dao-hang/id452186370?mt=8";
break;
default:
return;
break;
}
url = encodeURI(url); //重点在这一句,如果不加,android没问题,但是ios打不开,每次提示未安装,所以同学们要注意了
console.log(url);
plus.runtime.openURL( url, function(e) {
plus.nativeUI.confirm( "检查到您未安装百度地图,是否到商城搜索下载?", function(i){
if ( i.index == 0 ) {
f(id);
}
} );
} );
}

收起阅读 »

IOS10 打开系统设置

IOS原有跳转Wi-Fi设置是”prefs:root=WIFI”,新的写法是”App-Prefs:root=WIFI”

function networkType(){
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW] = "Unknown connection";
types[plus.networkinfo.CONNECTION_NONE] = "No connection";
types[plus.networkinfo.CONNECTION_ETHERNET] = "Ethernet connection";
types[plus.networkinfo.CONNECTION_WIFI] = "WiFi connection";
types[plus.networkinfo.CONNECTION_CELL2G] = "Cellular 2G connection";
types[plus.networkinfo.CONNECTION_CELL3G] = "Cellular 3G connection";
types[plus.networkinfo.CONNECTION_CELL4G] = "Cellular 4G connection";

if (plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE || plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_UNKNOW) {
mui.toast("当前暂无网络连接,请打开数据服务!", "提示");
mui.confirm('网络出错,请检查网络配置', '温馨提示', ['退出', '设置'], function(e){
if(e.index == 0){
} else {
if(mui.os.ios){
plus.runtime.launchApplication({action:'App-Prefs:root=WIFI'}, function(e){
console.log(JSON.stringify(e));
}); //WIFI
} else {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.WIFI_SETTINGS');
main.startActivity(mIntent);
}
}
});
}
else {
console.log(types[plus.networkinfo.getCurrentType()]);
}
}

继续阅读 »

IOS原有跳转Wi-Fi设置是”prefs:root=WIFI”,新的写法是”App-Prefs:root=WIFI”

function networkType(){
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW] = "Unknown connection";
types[plus.networkinfo.CONNECTION_NONE] = "No connection";
types[plus.networkinfo.CONNECTION_ETHERNET] = "Ethernet connection";
types[plus.networkinfo.CONNECTION_WIFI] = "WiFi connection";
types[plus.networkinfo.CONNECTION_CELL2G] = "Cellular 2G connection";
types[plus.networkinfo.CONNECTION_CELL3G] = "Cellular 3G connection";
types[plus.networkinfo.CONNECTION_CELL4G] = "Cellular 4G connection";

if (plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE || plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_UNKNOW) {
mui.toast("当前暂无网络连接,请打开数据服务!", "提示");
mui.confirm('网络出错,请检查网络配置', '温馨提示', ['退出', '设置'], function(e){
if(e.index == 0){
} else {
if(mui.os.ios){
plus.runtime.launchApplication({action:'App-Prefs:root=WIFI'}, function(e){
console.log(JSON.stringify(e));
}); //WIFI
} else {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.WIFI_SETTINGS');
main.startActivity(mIntent);
}
}
});
}
else {
console.log(types[plus.networkinfo.getCurrentType()]);
}
}

收起阅读 »

关于PHP Editor中PHP代码折叠的问题

如果你觉得你所有设置步骤都弄过了,也重启了IDE,还是不能折叠代码,那个让期待的“+”、“-”号还是不出现,建议你立即看一眼HD底部正在使用的编辑器是不是已经显示为【PHP Editor (Aptana)】,如果没有显示为这个插件的名称,点击一下,在弹出列表中选择这个插件即可。完成后,HD代码区略微一闪,“+”、“-”号就出现了。

如果从头开始,那么:

  1. 确保已下载PHP Editor插件。
  2. 选择【工具】->【选项】->【HBuilder】->【编辑器】->【PHP】,点击后,右侧设置区域即可看见【折叠】设置,你可以根据自己的需要,选择代码元素的这点方式
  3. 操作完成后,如果不出现折叠标志,则按前面所说再试一试。

JS和HTML也类似。

继续阅读 »

如果你觉得你所有设置步骤都弄过了,也重启了IDE,还是不能折叠代码,那个让期待的“+”、“-”号还是不出现,建议你立即看一眼HD底部正在使用的编辑器是不是已经显示为【PHP Editor (Aptana)】,如果没有显示为这个插件的名称,点击一下,在弹出列表中选择这个插件即可。完成后,HD代码区略微一闪,“+”、“-”号就出现了。

如果从头开始,那么:

  1. 确保已下载PHP Editor插件。
  2. 选择【工具】->【选项】->【HBuilder】->【编辑器】->【PHP】,点击后,右侧设置区域即可看见【折叠】设置,你可以根据自己的需要,选择代码元素的这点方式
  3. 操作完成后,如果不出现折叠标志,则按前面所说再试一试。

JS和HTML也类似。

收起阅读 »

【MUI还需改进】indexed list 索引列表的一些问题以及自己想到的一些笨办法

indexed list

indexed list 索引列表 目前自己踩过的坑

1、动态加载的数据过多时性能明显下降,尤其是数据达到一定量级时那速度特别感人

笨办法:由于数据比较多,无奈之下只好使用AJAX的方式直接查询数据库,然后将查询结果展示到索引列表,若是查询结果过多的话,则直接使用分页的形式展示数据,一次只加载固定长度的数据,这样性能还在可接受的范围内

2、索引列表高度的问题,在某些场景下webview是隐藏的,document.body.offsetHeight获取到的高度是0,尤其是隐藏状态下动态加载了数据索引列表显示不完整

笨办法:直接根据当前webview高度计算索引列表窗口,一些布局特殊的webview则是当webview显示时重新获取webview高度并设置下索引列表的高度

3、索引列表与下拉刷新不兼容,当索引列表使用了下拉刷新时,索引列表就无法向上滚动了

笨办法:放弃下拉刷新,直接监听longtap事件,将下拉刷新的方式改成了按住屏幕刷新的方式

4、数据过多时快速滚动索引列表会闪烁

笨办法:妈蛋、劳资不用了 #24#24#24

希望文档能完善点,组件也能多一点,MUI真心有些丑,这次重构就只好用framework7+vue了,其实mui也可以借鉴一下framework7,闭门造车是很难得

希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点

继续阅读 »

indexed list 索引列表 目前自己踩过的坑

1、动态加载的数据过多时性能明显下降,尤其是数据达到一定量级时那速度特别感人

笨办法:由于数据比较多,无奈之下只好使用AJAX的方式直接查询数据库,然后将查询结果展示到索引列表,若是查询结果过多的话,则直接使用分页的形式展示数据,一次只加载固定长度的数据,这样性能还在可接受的范围内

2、索引列表高度的问题,在某些场景下webview是隐藏的,document.body.offsetHeight获取到的高度是0,尤其是隐藏状态下动态加载了数据索引列表显示不完整

笨办法:直接根据当前webview高度计算索引列表窗口,一些布局特殊的webview则是当webview显示时重新获取webview高度并设置下索引列表的高度

3、索引列表与下拉刷新不兼容,当索引列表使用了下拉刷新时,索引列表就无法向上滚动了

笨办法:放弃下拉刷新,直接监听longtap事件,将下拉刷新的方式改成了按住屏幕刷新的方式

4、数据过多时快速滚动索引列表会闪烁

笨办法:妈蛋、劳资不用了 #24#24#24

希望文档能完善点,组件也能多一点,MUI真心有些丑,这次重构就只好用framework7+vue了,其实mui也可以借鉴一下framework7,闭门造车是很难得

希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点
希望文档能完善点,组件也能多一点

收起阅读 »

分享离线打包遇到的一个坑

离线打包

离线打包,要添加微信好友和朋友圈分享功能。直接运行Hbuilder项目可以,但是用安卓离线打包后,调不起来了,后来发现,因为在离线打包里,asset->data->dcloud_properties.xml中,多添加了Sina和Tencent的模块配置,而微信的模块配置放在下边,如图:

结果就是plus.share.getServices获取不到微信的配置信息,最后把前两个删掉就可以了。这。。容错率

继续阅读 »

离线打包,要添加微信好友和朋友圈分享功能。直接运行Hbuilder项目可以,但是用安卓离线打包后,调不起来了,后来发现,因为在离线打包里,asset->data->dcloud_properties.xml中,多添加了Sina和Tencent的模块配置,而微信的模块配置放在下边,如图:

结果就是plus.share.getServices获取不到微信的配置信息,最后把前两个删掉就可以了。这。。容错率

收起阅读 »

基于Windows创建iOS证书和p12文件 不用钥匙串 不限制电脑

iOS证书

os的证书需要用mac才能申请,而且证书受电脑限制!现在有款工具Appuploader可以创建证书。

Appuploader支持创建各种Apple证书,创建过程非常简单,不需要钥匙串,只需输入证书名称,创建邮箱等信息即可创建证书,而且可以运行在windows,linux或mac上创建,最方便的是创建的证书可以多电脑使用,不受限制。

Appuploader工具,也可以提交ipa到App Store,或者后续更新app等功能。

继续阅读 »

os的证书需要用mac才能申请,而且证书受电脑限制!现在有款工具Appuploader可以创建证书。

Appuploader支持创建各种Apple证书,创建过程非常简单,不需要钥匙串,只需输入证书名称,创建邮箱等信息即可创建证书,而且可以运行在windows,linux或mac上创建,最方便的是创建的证书可以多电脑使用,不受限制。

Appuploader工具,也可以提交ipa到App Store,或者后续更新app等功能。

收起阅读 »

mui、h5+、h.js、项目实战教程汇总(免费、详细、播放总量已达3万)

5+App开发 mui

mui、h5+、h.js、项目实战教程汇总,观看地址:
http://www.hcoder.net/course


观看地址:
http://www.hcoder.net/course/

自hcoder发布mui h5+ 教程以来视频总播放量已经超过3万,我们一直在努力更新各类视频教程来方便大家学习!
感谢大家的支持和厚爱! 我们会继续努力做得更好!

h.js mui dom操作完美小伙伴同步更新中!更多教程请关注 hcoder.net
http://www.hcoder.net

继续阅读 »

mui、h5+、h.js、项目实战教程汇总,观看地址:
http://www.hcoder.net/course


观看地址:
http://www.hcoder.net/course/

自hcoder发布mui h5+ 教程以来视频总播放量已经超过3万,我们一直在努力更新各类视频教程来方便大家学习!
感谢大家的支持和厚爱! 我们会继续努力做得更好!

h.js mui dom操作完美小伙伴同步更新中!更多教程请关注 hcoder.net
http://www.hcoder.net

收起阅读 »

【公告】关于近期Appstore的警告邮件,【已更换高德和个推SDK使用Alpha版HBuilder重新打包即可】

Appstore 警告信息

关于近期各位开发者收到Appstore 违反政策警告的公告
综合各方信息

  1. 主要禁的还是 JSPatch等热修复框架,特点是可以通过 JS 脚本调用和替换任意 OC 方法。
  2. 而使用5+ WGT或WGTU方式做热更新,更新页面和JS 功能暂时不受影响。
  3. 5+runtime没有使用JSPatch等热修复框架,主要是第三方SDK:高德地图和个推使用了jspatch,因此被警告。
    已更换最新高德和个推SDK 已经更新到Alpha 打包机,如果有Alpha版本的HBuilder请直接打包,如果没有请下载对应版本
    公网地址:

    HBuilder.windows@20170316.zip @alpha版本每天都会编译更新,所以最新版为当日时间戳 格式如:HBuilder.windows@20170316.zip

    Win版本:http://update.dcloud.net.cn/alpha/HBuilder.windows@20170316.zip
    Mac版本:http://update.dcloud.net.cn/alpha/HBuilder.macosx_64@20170316.tar.gz
    注意,HBuilder for Mac alpha 是没有签名的,如Mac系统设置了仅信任AppStore或受信任的开发者来源的安装包,请右键点击打开或control+点击打开HBuilder
    Alpha 版HBuilder 百度云下载地址:链接: https://pan.baidu.com/s/1kUNa0jd 密码: e3xg

虽然可以继续使用WGT和WGTU更新方式,但是为了避免appstore审核失败,应该尽量不要显式提示或者”更新“字眼
建议直接走下次启动后生效,另外wgt下载请使用https,避免被三方恶意劫持。

根据苹果要求,收到警告的同学只需要在下次提交版本时去掉相关框架就可以,目前已经有开发者去除高德SDK之后成功通过审核。
此警告没有时间期限,目前也不会强制下架。

部分开发者的app被苹果下架,因为苹果的审核政策不透明,还需向苹果详情了解情况。并非使用HTML5+技术的app都会下架。
同时也可参考如下方案,先通过我们的iOS流应用为用户提供服务:
http://ask.dcloud.net.cn/article/1180
尤其参考里面的代练通的做法http://help.dailiantong.com/contents/13/2004.html

继续阅读 »

关于近期各位开发者收到Appstore 违反政策警告的公告
综合各方信息

  1. 主要禁的还是 JSPatch等热修复框架,特点是可以通过 JS 脚本调用和替换任意 OC 方法。
  2. 而使用5+ WGT或WGTU方式做热更新,更新页面和JS 功能暂时不受影响。
  3. 5+runtime没有使用JSPatch等热修复框架,主要是第三方SDK:高德地图和个推使用了jspatch,因此被警告。
    已更换最新高德和个推SDK 已经更新到Alpha 打包机,如果有Alpha版本的HBuilder请直接打包,如果没有请下载对应版本
    公网地址:

    HBuilder.windows@20170316.zip @alpha版本每天都会编译更新,所以最新版为当日时间戳 格式如:HBuilder.windows@20170316.zip

    Win版本:http://update.dcloud.net.cn/alpha/HBuilder.windows@20170316.zip
    Mac版本:http://update.dcloud.net.cn/alpha/HBuilder.macosx_64@20170316.tar.gz
    注意,HBuilder for Mac alpha 是没有签名的,如Mac系统设置了仅信任AppStore或受信任的开发者来源的安装包,请右键点击打开或control+点击打开HBuilder
    Alpha 版HBuilder 百度云下载地址:链接: https://pan.baidu.com/s/1kUNa0jd 密码: e3xg

虽然可以继续使用WGT和WGTU更新方式,但是为了避免appstore审核失败,应该尽量不要显式提示或者”更新“字眼
建议直接走下次启动后生效,另外wgt下载请使用https,避免被三方恶意劫持。

根据苹果要求,收到警告的同学只需要在下次提交版本时去掉相关框架就可以,目前已经有开发者去除高德SDK之后成功通过审核。
此警告没有时间期限,目前也不会强制下架。

部分开发者的app被苹果下架,因为苹果的审核政策不透明,还需向苹果详情了解情况。并非使用HTML5+技术的app都会下架。
同时也可参考如下方案,先通过我们的iOS流应用为用户提供服务:
http://ask.dcloud.net.cn/article/1180
尤其参考里面的代练通的做法http://help.dailiantong.com/contents/13/2004.html

收起阅读 »

"framework not found UserNotifications的问题

App离线打包

按照官方的ios离线打包步骤进行打包,总是出现如下的错误:
framework not found UserNotifications for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
第一时间想到来dcloud.io上面需求答案,可惜很失望,既没有官方的说法,也没有开发者分享答案。
没办法,只好自己问度娘,后来在stackoverflow上面找到了答案。原文地址:
http://stackoverflow.com/questions/40034972/ionic-ld-framework-not-found-usernotifications
虽然提问者使用的是ionic,其实道理都是相通的。
文中提到两个解决方案:
1、使用Xcode8.0版本,因为通过dcloud官网下载的5+SDK离线打包会使用到UserNotifications,
而该特性为IOS10以上版本进行消息推送所需,而目前只有XCode8.0集成了其开发库;
2、使用Xcode8.0以下版本,在工程中搜索UserNotifications,然后将配置该内容的地方去掉。

当然,最终我采用的是方案1,即将Xcode升级到了8.0,解决了该问题。
方案2我试着搜索UserNotifications,但是并没有搜素到该关键字,我想应该是应用程序默认都需要使用到。

如果还有朋友对该问题困扰,不妨试试。

继续阅读 »

按照官方的ios离线打包步骤进行打包,总是出现如下的错误:
framework not found UserNotifications for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
第一时间想到来dcloud.io上面需求答案,可惜很失望,既没有官方的说法,也没有开发者分享答案。
没办法,只好自己问度娘,后来在stackoverflow上面找到了答案。原文地址:
http://stackoverflow.com/questions/40034972/ionic-ld-framework-not-found-usernotifications
虽然提问者使用的是ionic,其实道理都是相通的。
文中提到两个解决方案:
1、使用Xcode8.0版本,因为通过dcloud官网下载的5+SDK离线打包会使用到UserNotifications,
而该特性为IOS10以上版本进行消息推送所需,而目前只有XCode8.0集成了其开发库;
2、使用Xcode8.0以下版本,在工程中搜索UserNotifications,然后将配置该内容的地方去掉。

当然,最终我采用的是方案1,即将Xcode升级到了8.0,解决了该问题。
方案2我试着搜索UserNotifications,但是并没有搜素到该关键字,我想应该是应用程序默认都需要使用到。

如果还有朋友对该问题困扰,不妨试试。

收起阅读 »

挂人,活干完了不给钱

外包

年前帮一网友做了一个小活,代码打包发给对方后,鸟人借口一个功能没完成,就不给钱了。
需求设这样的(看下图),其中有一个需求是

当应用切换到后台时,其他app内复制数据该app内自动保存

这个功能在android平台是可以实现的,不过在ios平台是有问题的

由于iOS系统极安全防护限制,当应用切换到后台时,系统默认屏蔽剪切版接口,默认获取到的数据为空;当应用切换到前台时,才能访问剪切版,所以需要每次在其他地方复制内容后需要将应用切换到前台

这个也只有踩坑后才能知道能不能搞定

我也在社区中回复了如何操作系统剪切板,如何用Native.js复制内容

对方就咬死了一定要我实现,关键是老子也没办法啊,这个是系统层级的事情

我问了做ios的朋友,也问了DLCOUD的朋友,都回复没法实现。

最主要的是对方一开始也没告知ios一定要实现。

也怪我,刚开始没要定金,主要是刚开始对方发我第一版需求的时候,我做完了,给钱很痛快,
第二次也就是这次的需求我就没要定金,大意了。

打算赚点零花钱过春节就这么黄了。艹

第二次做的时候代码完全重构。。。。


童鞋们,注意了这个人不可靠

QQ号是:80780471

微信: mammapworrall

头像这个鸟样

附一下聊天截图:

代码已分享到了coding.net上,需要了解websql的童鞋可参考

地址在phillyx

继续阅读 »

年前帮一网友做了一个小活,代码打包发给对方后,鸟人借口一个功能没完成,就不给钱了。
需求设这样的(看下图),其中有一个需求是

当应用切换到后台时,其他app内复制数据该app内自动保存

这个功能在android平台是可以实现的,不过在ios平台是有问题的

由于iOS系统极安全防护限制,当应用切换到后台时,系统默认屏蔽剪切版接口,默认获取到的数据为空;当应用切换到前台时,才能访问剪切版,所以需要每次在其他地方复制内容后需要将应用切换到前台

这个也只有踩坑后才能知道能不能搞定

我也在社区中回复了如何操作系统剪切板,如何用Native.js复制内容

对方就咬死了一定要我实现,关键是老子也没办法啊,这个是系统层级的事情

我问了做ios的朋友,也问了DLCOUD的朋友,都回复没法实现。

最主要的是对方一开始也没告知ios一定要实现。

也怪我,刚开始没要定金,主要是刚开始对方发我第一版需求的时候,我做完了,给钱很痛快,
第二次也就是这次的需求我就没要定金,大意了。

打算赚点零花钱过春节就这么黄了。艹

第二次做的时候代码完全重构。。。。


童鞋们,注意了这个人不可靠

QQ号是:80780471

微信: mammapworrall

头像这个鸟样

附一下聊天截图:

代码已分享到了coding.net上,需要了解websql的童鞋可参考

地址在phillyx

收起阅读 »

【文档】mui.pullToRefresh插件

mui 上拉加载 下拉刷新

下拉刷新和上拉加载,是大部分应用中都会用到的功能。
mui结合html5plus的API,封装了一套可以在Android和iOS上实现的配置,详细参考mui相关文档

为了方便开发wap站的开发者,mui还扩展了pullToRefresh插件。

依赖

  • mui.js
  • mui.pullToRefresh.js
  • mui.pullToRefresh.material.js

同样,和其它一些插件一样,在HBuilder中新建hello mui示例工程,或在在github上均可获取以上资源。

初始化组件

初始化方法

var pullToRefresh = mui(selector).pullToRefresh(options);  

配置信息

下拉配置

down: {  
    callback: function(){} //下拉回调函数  
}  

目前下拉只有这一个配置项,下拉的动画是canvas绘制的,想调整的话需要修改mui.pullToRefresh.material.js中的相关代码。

上拉配置

up: {  
    callback: function(){}, //上拉回调,必填;  
    auto: false, //自动执行一次上拉加载,可选;  
    show: true, //显示底部上拉加载提示信息,可选;  
    contentinit: '上拉显示更多', //可以上拉提示信息  
    contentdown: '上拉显示更多', //上拉结束提示信息  
    contentrefresh: '正在加载...', //上拉进行中提示信息  
    contentnomore: '没有更多数据了' //上拉无更多信息时提示信息  
}  

常用API

下拉相关

手动触发下拉

pullToRefresh.pullDownLoading();  

结束下拉

pullToRefresh.endPullDownToRefresh();  

上拉相关

手动触发上拉

pullToRefresh.pullUpLoading();  

结束上拉

pullToRefresh.endPullUpToRefresh(Boolean); //传true代表无更多信息,默认可不传;  

禁用/开启组件

pullToRefresh.setStopped(Boolean);  

刷新组件

上拉的操作,如果无更多信息后,调用结束上拉并且传true会禁用上拉。如果需要重新开启上拉,则需要刷新组件。

pullToRefresh.refresh(true);  

结尾

附件中提供了一个简单的,使用mui.pullToRefresh制作的例子。多个选项卡的情景,请参考hello mui示例中的pullrefresh_with_tab.html

继续阅读 »

下拉刷新和上拉加载,是大部分应用中都会用到的功能。
mui结合html5plus的API,封装了一套可以在Android和iOS上实现的配置,详细参考mui相关文档

为了方便开发wap站的开发者,mui还扩展了pullToRefresh插件。

依赖

  • mui.js
  • mui.pullToRefresh.js
  • mui.pullToRefresh.material.js

同样,和其它一些插件一样,在HBuilder中新建hello mui示例工程,或在在github上均可获取以上资源。

初始化组件

初始化方法

var pullToRefresh = mui(selector).pullToRefresh(options);  

配置信息

下拉配置

down: {  
    callback: function(){} //下拉回调函数  
}  

目前下拉只有这一个配置项,下拉的动画是canvas绘制的,想调整的话需要修改mui.pullToRefresh.material.js中的相关代码。

上拉配置

up: {  
    callback: function(){}, //上拉回调,必填;  
    auto: false, //自动执行一次上拉加载,可选;  
    show: true, //显示底部上拉加载提示信息,可选;  
    contentinit: '上拉显示更多', //可以上拉提示信息  
    contentdown: '上拉显示更多', //上拉结束提示信息  
    contentrefresh: '正在加载...', //上拉进行中提示信息  
    contentnomore: '没有更多数据了' //上拉无更多信息时提示信息  
}  

常用API

下拉相关

手动触发下拉

pullToRefresh.pullDownLoading();  

结束下拉

pullToRefresh.endPullDownToRefresh();  

上拉相关

手动触发上拉

pullToRefresh.pullUpLoading();  

结束上拉

pullToRefresh.endPullUpToRefresh(Boolean); //传true代表无更多信息,默认可不传;  

禁用/开启组件

pullToRefresh.setStopped(Boolean);  

刷新组件

上拉的操作,如果无更多信息后,调用结束上拉并且传true会禁用上拉。如果需要重新开启上拉,则需要刷新组件。

pullToRefresh.refresh(true);  

结尾

附件中提供了一个简单的,使用mui.pullToRefresh制作的例子。多个选项卡的情景,请参考hello mui示例中的pullrefresh_with_tab.html

收起阅读 »