HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

没有微信小程序APPID时候,在uni-app中使用测试APPID代替

很多时候微信小程序的正式APPID还没有注册下来,没有APPID小程序开发功能并不完整。这个时候就可以在小程序开发者工具中先获取测试APPID,然后配置到HX项目中。

第一步:先在微信开发者工具里面获取到测试APPID,如图


点击小程序获取测试APPID

第二步:在uni-app配置项中加入APPID即可,如图

再次编译后,微信开发者工具就可以拥有全部的开发功能了

继续阅读 »

很多时候微信小程序的正式APPID还没有注册下来,没有APPID小程序开发功能并不完整。这个时候就可以在小程序开发者工具中先获取测试APPID,然后配置到HX项目中。

第一步:先在微信开发者工具里面获取到测试APPID,如图


点击小程序获取测试APPID

第二步:在uni-app配置项中加入APPID即可,如图

再次编译后,微信开发者工具就可以拥有全部的开发功能了

收起阅读 »

郑州小程序开发比较适合什么行业投资

微信小程序 小程序

  郑州小程序开发认为目前小程序主要的优势就是在流量上的优势,而小程序的出现也让越来越多的人相信,小程序的仍然有很大的发展空间,那么小程序开发有哪些类型呢,对于投资者来说哪些行业适合做小程序呢? 今天就为大家分析解答一下吧。

  1、在线点餐小程序 。对于生意火爆的餐厅来说,最影响服务质量的一个因素之一,就是消费者排队时间长。如果商家开发有自己的小程序,消费者便能自主下单,还能选择座位,结账支付后直接退出页面即可,操作过程简单,也不会占用手机内存。

  2、电商小程序。这是目前最为常见的小程序类型。这类型小程序具有产品展示和支付功能,用户可以直接通过小程序挑选和购买商品,不需要跳转到第三方平台。电商小程序的优势是,缩短了用户的决策路径,降低了用户的决策时间,让交易变得更高效。而且小程序还带有客服功能,消费过程中同样可以实现一对一交流。

  3、酒店预订小程序。网络预定酒店已经成为八零九零后出行的普遍方式,除了优惠力度大以外,网络预订很便捷,也是吸引他们的主要原因。酒店预订类小程序同样具备导航功能和在线支付功能。小程序与官网配合使用,也是提高品牌知名度的有效方法,无论是酒店还是民宿,有个自己的小程序,也是很有必要。

  4、互动功能类。互动类的小程序近期也出现得比较多,不过这类小程序一旦造成刷屏,就很容易被封号,总之,还是要按照微信规则来进行开发和推广。微信小程序开发成本低,技术难度小,用户体验更佳,无论哪种类型的商家,都能在小程序中挖掘到最适合自己的引流方式。

  微信小程序已经成为互联网的一匹黑马,从刚刚发布时的不被看好,到现在的火爆,中间不到两年的时间,虽然经历了一些起伏,但小程序毫无疑问已经成为目前各企业抢占流量的主要入口。即便是不太关注互联网行业的普通用户,也能充分感受到小程序的发展速度。所以对于企业投资者来说,现在要做的就是抓住机遇,开发一款适合自己行业的小程序来盈利。
本文由专业的郑州小程序开发燚轩科技整理发布,如需转载请注明出处。

继续阅读 »

  郑州小程序开发认为目前小程序主要的优势就是在流量上的优势,而小程序的出现也让越来越多的人相信,小程序的仍然有很大的发展空间,那么小程序开发有哪些类型呢,对于投资者来说哪些行业适合做小程序呢? 今天就为大家分析解答一下吧。

  1、在线点餐小程序 。对于生意火爆的餐厅来说,最影响服务质量的一个因素之一,就是消费者排队时间长。如果商家开发有自己的小程序,消费者便能自主下单,还能选择座位,结账支付后直接退出页面即可,操作过程简单,也不会占用手机内存。

  2、电商小程序。这是目前最为常见的小程序类型。这类型小程序具有产品展示和支付功能,用户可以直接通过小程序挑选和购买商品,不需要跳转到第三方平台。电商小程序的优势是,缩短了用户的决策路径,降低了用户的决策时间,让交易变得更高效。而且小程序还带有客服功能,消费过程中同样可以实现一对一交流。

  3、酒店预订小程序。网络预定酒店已经成为八零九零后出行的普遍方式,除了优惠力度大以外,网络预订很便捷,也是吸引他们的主要原因。酒店预订类小程序同样具备导航功能和在线支付功能。小程序与官网配合使用,也是提高品牌知名度的有效方法,无论是酒店还是民宿,有个自己的小程序,也是很有必要。

  4、互动功能类。互动类的小程序近期也出现得比较多,不过这类小程序一旦造成刷屏,就很容易被封号,总之,还是要按照微信规则来进行开发和推广。微信小程序开发成本低,技术难度小,用户体验更佳,无论哪种类型的商家,都能在小程序中挖掘到最适合自己的引流方式。

  微信小程序已经成为互联网的一匹黑马,从刚刚发布时的不被看好,到现在的火爆,中间不到两年的时间,虽然经历了一些起伏,但小程序毫无疑问已经成为目前各企业抢占流量的主要入口。即便是不太关注互联网行业的普通用户,也能充分感受到小程序的发展速度。所以对于企业投资者来说,现在要做的就是抓住机遇,开发一款适合自己行业的小程序来盈利。
本文由专业的郑州小程序开发燚轩科技整理发布,如需转载请注明出处。

收起阅读 »

安卓微信支付-100 (-1)错误排除指导

微信支付

微信支付报错信息:

{"code":-100,"message":"[payment微信:-1]General errors"}

以上错误码-100是5+SDK的错误码,而-1为微信支付SDK的错误码,对应的微信的错误类型为:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
根据错误提示我们逐步排除。

登记的包名或签名错误

核对微信后台登记的应用包名以及应用签名是否有误,登记的签名需要和签名工具获取到的一致,更新这些信息并非马上生效,可以等一段时间再测试。另外需要确保应用已经通过审核,并获得支付权限。
如果核对均无误,尝试重新登陆或者重装微信。

APPID错误

核对项目中manifest.json文件中填写的微信支付的AppID是否和平台上的一致。

付款信息计算错误

核对后端代码,查验统一下单调起支付接口的逻辑是否有误,并确保两次签名生成算法一致。

H5+接口调用错误

接口plus.payment.request调用时传入的支付信息是字符串类型,如:

'{"appid":"wx0411fa6a39d61297","noncestr":"71maVjWiEAvU85Wk","package":"Sign=WXPay","partnerid":"1230636401","prepayid":"wx03141004900988e2c281e3170042244847","timestamp":1535955004,"sign":"2AE06EF08E54B47659C79149CD9C284C"}'
继续阅读 »

微信支付报错信息:

{"code":-100,"message":"[payment微信:-1]General errors"}

以上错误码-100是5+SDK的错误码,而-1为微信支付SDK的错误码,对应的微信的错误类型为:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
根据错误提示我们逐步排除。

登记的包名或签名错误

核对微信后台登记的应用包名以及应用签名是否有误,登记的签名需要和签名工具获取到的一致,更新这些信息并非马上生效,可以等一段时间再测试。另外需要确保应用已经通过审核,并获得支付权限。
如果核对均无误,尝试重新登陆或者重装微信。

APPID错误

核对项目中manifest.json文件中填写的微信支付的AppID是否和平台上的一致。

付款信息计算错误

核对后端代码,查验统一下单调起支付接口的逻辑是否有误,并确保两次签名生成算法一致。

H5+接口调用错误

接口plus.payment.request调用时传入的支付信息是字符串类型,如:

'{"appid":"wx0411fa6a39d61297","noncestr":"71maVjWiEAvU85Wk","package":"Sign=WXPay","partnerid":"1230636401","prepayid":"wx03141004900988e2c281e3170042244847","timestamp":1535955004,"sign":"2AE06EF08E54B47659C79149CD9C284C"}'
收起阅读 »

9.1.19.201808300739Hbuilder更新后微信分享而发起的质问与建议

微信分享 HBuilder

DCloud在8月30号更新hbuilder,我在今天更新内容后我难得一次地迫不及待点击更新了Hbuilder,在以往的更新中我通常会等到新版本更新一个月后才进行更新,因为众所皆知,新版本的HBuilder必定会出现一些影响APP的bug。

但这次Hbuilder更新了微信能够分享小程序这一功能让我迫不及待想尝一下这块蛋糕,即使我知道应该会碰到bug的。

新版本的HBuilder更新完毕,运行APP基座毫无问题,APP看起来似乎没有任何问题。于是开始尝试微信分享小程序这一功能,更新内容并没有提示任何新功能代码如何编写的文档,于是,有经验的dcloud开发者会自行前往HTML5+API文档中心寻找。

很顺利的,根据文档说明以及示例,安卓版本的微信分享小程序测试成功,唯一的瑕疵就是小程序缩略图即使尺寸、文件大小按照文档说明设置了,还是会出现模糊。该问题查阅社区,发现有许多开发者一起反馈过,问题下面并没有给出解决方案。如果只是这个小瑕疵,其实可以将就。

后来,测试IOS版本的微信分享小程序,无法成功分享,显示不支持的分享类型,如附件图。查询社区同样发现许多开发者反馈这个问题,也就是说新版本的微信分享小程序在iOS版本上根本就是没有成功的,那么为何版本更新说明不说清楚,让开发者自己蒙头瞎测试

另外,我顺带测试了原本已有的微信分享,安卓版本的微信分享图文链接消息没有问题,而IOS版本的图文链接则是变成了文字消息,起初以为只是我的苹果测试机版本太老引发的,后面用了多部测试机测试发现确实是有这个问题,才上来社区搜索相关问题,发现这个问题是有一大堆开发者遇到了!

之后特地去回头查看文档,文档是已经更改。

微信分享平台,可取值: "web"-分享网页类型,title(必填)、content(必填)、thumbs(必填)、href(网页url,必填)属性值有效; "text"-分享文字类型,content(必填)属性值有效; "image"-分享图片类型,pictures(必填)属性值有效; "music"-分享音乐类型,title(必填)、content(必填)、thumbs(必填)、media(音乐url,必填)属性值有效; "video"-分享视频类型,title(必填)、content(必填)、thumbs(必填)、media(视频url,必填)属性值有效; "miniProgram"-分享小程序类型(仅支持分享到好友),title(必填)、content(必填)、thumbs(图片小于128K,宽高比为5:4,必填)、miniProgram(小程序参数,必填)属性值有效; 没有设置type时,如果href值有效则默认值为"web"

首先值得一提的是,文档说明中“如果href值有效则默认值为"web”是错误的,我程序的href是有效的,但分享出来还是text类型,其二,软件更新新功能无法完美向下兼容,所有开发者都可以理解,但是为什么DCloud的更新提示,对于这一点为什么提都不愿意提一下呢?因为如果开发者不能及时发现问题,更改代码,那么开发者使用新版本hbuilder打包的APP的分享将会出现瘫痪,这种bug在有些公司是会直接导致开发者丢掉饭碗!也就是说,只要在更新提示中加以提醒标注一下,就能让开发者自发解决问题,那为什么不怎么做呢?

对于DCloud这种匠心公司,我总是抱着莫大的敬意的,以及经常会推荐身边的开发者去使用它。我相信dcloud的这种开发模式是适合国情的,适合中国广大的中低级开发者的,但是,请您,不辜负开发者对您的信任,可以嘛?

继续阅读 »

DCloud在8月30号更新hbuilder,我在今天更新内容后我难得一次地迫不及待点击更新了Hbuilder,在以往的更新中我通常会等到新版本更新一个月后才进行更新,因为众所皆知,新版本的HBuilder必定会出现一些影响APP的bug。

但这次Hbuilder更新了微信能够分享小程序这一功能让我迫不及待想尝一下这块蛋糕,即使我知道应该会碰到bug的。

新版本的HBuilder更新完毕,运行APP基座毫无问题,APP看起来似乎没有任何问题。于是开始尝试微信分享小程序这一功能,更新内容并没有提示任何新功能代码如何编写的文档,于是,有经验的dcloud开发者会自行前往HTML5+API文档中心寻找。

很顺利的,根据文档说明以及示例,安卓版本的微信分享小程序测试成功,唯一的瑕疵就是小程序缩略图即使尺寸、文件大小按照文档说明设置了,还是会出现模糊。该问题查阅社区,发现有许多开发者一起反馈过,问题下面并没有给出解决方案。如果只是这个小瑕疵,其实可以将就。

后来,测试IOS版本的微信分享小程序,无法成功分享,显示不支持的分享类型,如附件图。查询社区同样发现许多开发者反馈这个问题,也就是说新版本的微信分享小程序在iOS版本上根本就是没有成功的,那么为何版本更新说明不说清楚,让开发者自己蒙头瞎测试

另外,我顺带测试了原本已有的微信分享,安卓版本的微信分享图文链接消息没有问题,而IOS版本的图文链接则是变成了文字消息,起初以为只是我的苹果测试机版本太老引发的,后面用了多部测试机测试发现确实是有这个问题,才上来社区搜索相关问题,发现这个问题是有一大堆开发者遇到了!

之后特地去回头查看文档,文档是已经更改。

微信分享平台,可取值: "web"-分享网页类型,title(必填)、content(必填)、thumbs(必填)、href(网页url,必填)属性值有效; "text"-分享文字类型,content(必填)属性值有效; "image"-分享图片类型,pictures(必填)属性值有效; "music"-分享音乐类型,title(必填)、content(必填)、thumbs(必填)、media(音乐url,必填)属性值有效; "video"-分享视频类型,title(必填)、content(必填)、thumbs(必填)、media(视频url,必填)属性值有效; "miniProgram"-分享小程序类型(仅支持分享到好友),title(必填)、content(必填)、thumbs(图片小于128K,宽高比为5:4,必填)、miniProgram(小程序参数,必填)属性值有效; 没有设置type时,如果href值有效则默认值为"web"

首先值得一提的是,文档说明中“如果href值有效则默认值为"web”是错误的,我程序的href是有效的,但分享出来还是text类型,其二,软件更新新功能无法完美向下兼容,所有开发者都可以理解,但是为什么DCloud的更新提示,对于这一点为什么提都不愿意提一下呢?因为如果开发者不能及时发现问题,更改代码,那么开发者使用新版本hbuilder打包的APP的分享将会出现瘫痪,这种bug在有些公司是会直接导致开发者丢掉饭碗!也就是说,只要在更新提示中加以提醒标注一下,就能让开发者自发解决问题,那为什么不怎么做呢?

对于DCloud这种匠心公司,我总是抱着莫大的敬意的,以及经常会推荐身边的开发者去使用它。我相信dcloud的这种开发模式是适合国情的,适合中国广大的中低级开发者的,但是,请您,不辜负开发者对您的信任,可以嘛?

收起阅读 »

uniapp嵌入百度地图,android定位无法用。IOS正常。

Webview

请官方花30秒,用uni-app测试以下代码。不要再拖了。

<web-view src="https://map.baidu.com/mobile/webapp/index/index/foo=bar/vt=map"></web-view>

按下图左下角的定位按钮。

继续阅读 »

请官方花30秒,用uni-app测试以下代码。不要再拖了。

<web-view src="https://map.baidu.com/mobile/webapp/index/index/foo=bar/vt=map"></web-view>

按下图左下角的定位按钮。

收起阅读 »

如何选择合适的郑州小程序开发设计方式呢

微信小程序

  郑州小程序开发的价格其实和投资者所选择的开发方式是有关系的,而且不同的小程序开发方式所需要的开发报价是不一样的,开发一款小程序主要有三种方式,接下来分别列一下每种方式的大概费用:

  1、自己组技术团队自己开发,需要的人员有产品经理、框架工程师、JAVA、PHP、前端、后端、测试工程师,开发周期在1-2个月。人员成本5-8万,后期维护成本没算。(推荐企业选择,不推荐个体商家选择)

  2、购买别人的小程序源码,用自己的服务器,找个技术人员专职维护。源码费用一般8000-10000,服务器一年3000,维护成本每月6000。(不推荐企业和商家选择)

  3、使用类似速成应用这样的第三方小程序开发小程序,根据功能、框架、定位、交互、UI常见的小程序开发价格在1000-5000之间,特殊定制类价格在5000-20000直接不用担心技术维护、不用建服务器,拿过来就可以使用,还可以根据自己的搭建要求设计店铺和绑定公众号。(推荐个体商家选择,不推荐企业选择)

  至于如何找到一家口碑及实力信誉都比较好的微信小程序开发公司,这里建议大家分两步来找。首先,看其有无负面消息。在各大搜素引擎中搜索该公司的名字,如果出现“骗子”、“骗人”等负面性词汇时,则表明该公司对外的口碑并不好。反之,如果没有任何负面消息出现,该公司则可以列入你的选择范围内。

  其次,看其合作案例多少。如果该公司连一个案例都没有,则说明公司刚处于起步阶段或是技术实力不行。反之,你可以看其现有的合作案例,亲自进行体验操作,来判断其设计是否符合你的要求。考察的过程中,关于对方的规模、服务态度以及技术实力你都可以形成一个大致的轮廓,以此再进一步判断其是否符合你的标准。
本文由专业的郑州小程序开发公司燚轩科技整理发布,如需转载请注明出处!

继续阅读 »

  郑州小程序开发的价格其实和投资者所选择的开发方式是有关系的,而且不同的小程序开发方式所需要的开发报价是不一样的,开发一款小程序主要有三种方式,接下来分别列一下每种方式的大概费用:

  1、自己组技术团队自己开发,需要的人员有产品经理、框架工程师、JAVA、PHP、前端、后端、测试工程师,开发周期在1-2个月。人员成本5-8万,后期维护成本没算。(推荐企业选择,不推荐个体商家选择)

  2、购买别人的小程序源码,用自己的服务器,找个技术人员专职维护。源码费用一般8000-10000,服务器一年3000,维护成本每月6000。(不推荐企业和商家选择)

  3、使用类似速成应用这样的第三方小程序开发小程序,根据功能、框架、定位、交互、UI常见的小程序开发价格在1000-5000之间,特殊定制类价格在5000-20000直接不用担心技术维护、不用建服务器,拿过来就可以使用,还可以根据自己的搭建要求设计店铺和绑定公众号。(推荐个体商家选择,不推荐企业选择)

  至于如何找到一家口碑及实力信誉都比较好的微信小程序开发公司,这里建议大家分两步来找。首先,看其有无负面消息。在各大搜素引擎中搜索该公司的名字,如果出现“骗子”、“骗人”等负面性词汇时,则表明该公司对外的口碑并不好。反之,如果没有任何负面消息出现,该公司则可以列入你的选择范围内。

  其次,看其合作案例多少。如果该公司连一个案例都没有,则说明公司刚处于起步阶段或是技术实力不行。反之,你可以看其现有的合作案例,亲自进行体验操作,来判断其设计是否符合你的要求。考察的过程中,关于对方的规模、服务态度以及技术实力你都可以形成一个大致的轮廓,以此再进一步判断其是否符合你的标准。
本文由专业的郑州小程序开发公司燚轩科技整理发布,如需转载请注明出处!

收起阅读 »

点击下载图片

mui.init({
gestureConfig: {
longtap: true
}
});
mui.plusReady(function() {
document.addEventListener("longtap", function(event) {
/**

  • 获取目标节点的tagName
    */
    var name = event.target.tagName;
    name = name.toLowerCase();
    /**
  • 如果是图片,则弹出选择框决定是否下载;
    */
    if(name === "img") {
    var imgUrl = event.target.src;
    console.log('图片地址:' + imgUrl);
    var suffix = cutImageSuffix(imgUrl);
    /**

    • http://dev.dcloud.net.cn/mui/ui/#dialog
      */
      mui.confirm("是否下载此图片", "确认下载?", ["下载", "不下"], function(event) {
      /**

      • index从0开始
        */
        var index = event.index;
        if(index == 0) {
        /**

        • 创建下载任务
        • http://www.html5plus.org/doc/zh_cn/downloader.html#plus.downloader.createDownload
          */
          var downLoader = plus.downloader.createDownload(imgUrl, {
          method: 'GET',
          filename: '_downloads/image' + suffix
          }, function(download, status) {
          var fileName = download.filename;
          console.log('文件名:' + fileName);
          console.log('下载状态:' + status);
          /**

          • 保存至本地相册
          • http://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.save
            */
            plus.gallery.save(fileName, function() {
            /**

            • 保存后,弹出对话框是否查看;
            • http://dev.dcloud.net.cn/mui/ui/#dialog
              */
              mui.confirm("打开相册", "打开相册?", ["打开", "不看"], function(event) {
              var gindex = event.index;
              if(gindex == 0) {
              /**

              • 选择图片
              • http://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.pick
                */
                plus.gallery.pick(function(file) {
                mui.toast("你选择了图片:" + file);
                }, function(error) {
                console.log(error);
                }, {

                    });  
                }  

                });
                });
                });
                /**

        • 开始下载任务
        • http://www.html5plus.org/doc/zh_cn/downloader.html#plus.downloader.Download.start
          */
          downLoader.start();
          }
          });
          }
          });
          });

// 截取图片后缀用于重命名图片,防止%E5%85%89%E6%98%8E%E8%A1%8C编码的文件不被系统相册识别;
function cutImageSuffix(imageUrl) {
var index = imageUrl.lastIndexOf('.');
return imageUrl.substring(index);
}

继续阅读 »

mui.init({
gestureConfig: {
longtap: true
}
});
mui.plusReady(function() {
document.addEventListener("longtap", function(event) {
/**

  • 获取目标节点的tagName
    */
    var name = event.target.tagName;
    name = name.toLowerCase();
    /**
  • 如果是图片,则弹出选择框决定是否下载;
    */
    if(name === "img") {
    var imgUrl = event.target.src;
    console.log('图片地址:' + imgUrl);
    var suffix = cutImageSuffix(imgUrl);
    /**

    • http://dev.dcloud.net.cn/mui/ui/#dialog
      */
      mui.confirm("是否下载此图片", "确认下载?", ["下载", "不下"], function(event) {
      /**

      • index从0开始
        */
        var index = event.index;
        if(index == 0) {
        /**

        • 创建下载任务
        • http://www.html5plus.org/doc/zh_cn/downloader.html#plus.downloader.createDownload
          */
          var downLoader = plus.downloader.createDownload(imgUrl, {
          method: 'GET',
          filename: '_downloads/image' + suffix
          }, function(download, status) {
          var fileName = download.filename;
          console.log('文件名:' + fileName);
          console.log('下载状态:' + status);
          /**

          • 保存至本地相册
          • http://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.save
            */
            plus.gallery.save(fileName, function() {
            /**

            • 保存后,弹出对话框是否查看;
            • http://dev.dcloud.net.cn/mui/ui/#dialog
              */
              mui.confirm("打开相册", "打开相册?", ["打开", "不看"], function(event) {
              var gindex = event.index;
              if(gindex == 0) {
              /**

              • 选择图片
              • http://www.html5plus.org/doc/zh_cn/gallery.html#plus.gallery.pick
                */
                plus.gallery.pick(function(file) {
                mui.toast("你选择了图片:" + file);
                }, function(error) {
                console.log(error);
                }, {

                    });  
                }  

                });
                });
                });
                /**

        • 开始下载任务
        • http://www.html5plus.org/doc/zh_cn/downloader.html#plus.downloader.Download.start
          */
          downLoader.start();
          }
          });
          }
          });
          });

// 截取图片后缀用于重命名图片,防止%E5%85%89%E6%98%8E%E8%A1%8C编码的文件不被系统相册识别;
function cutImageSuffix(imageUrl) {
var index = imageUrl.lastIndexOf('.');
return imageUrl.substring(index);
}

收起阅读 »

记录在uni-app中style的绑定与生命周期钩子create

uni-app内置的vue与vue.js有一些不同地方,有一些他只支持的语法。
class与style的绑定
需要渲染的方法用create,在实例创建完后,数据和事件配置后调用。一开始用的mounted,整个视图都渲染完毕,我想再渲染ddom是不行的了,后来用了beforeMount,因为打了断点,偶尔能获取到this.height,偶尔不能,so,这里的情况应该使用create,渲染前,事件配置后。

继续阅读 »

uni-app内置的vue与vue.js有一些不同地方,有一些他只支持的语法。
class与style的绑定
需要渲染的方法用create,在实例创建完后,数据和事件配置后调用。一开始用的mounted,整个视图都渲染完毕,我想再渲染ddom是不行的了,后来用了beforeMount,因为打了断点,偶尔能获取到this.height,偶尔不能,so,这里的情况应该使用create,渲染前,事件配置后。

收起阅读 »

uni-app中类似mui中的chat、im(聊天窗口)实现

chat IM

用uni-app实现了一个类似于mui中有chat(聊天窗口),源代码在git上
https://github.com/felony/uniapp-chat
实现中用到了<scroll-view>组件,有些坑需要注意

继续阅读 »

用uni-app实现了一个类似于mui中有chat(聊天窗口),源代码在git上
https://github.com/felony/uniapp-chat
实现中用到了<scroll-view>组件,有些坑需要注意

收起阅读 »

分享一个cache方案,可以指定缓存时间

缓存

具体使用方法 看代码。

/**  
 * 缓存数据优化  
 * var cache = require('utils/cache.js');  
 * import cache from '../cache'  
 * 使用方法 【  
 *     一、设置缓存  
 *         string    cache.put('k', 'string你好啊');  
 *         json      cache.put('k', { "b": "3" }, 2);  
 *         array     cache.put('k', [1, 2, 3]);  
 *         boolean   cache.put('k', true);  
 *     二、读取缓存  
 *         默认值    cache.get('k')  
 *         string    cache.get('k', '你好')  
 *         json      cache.get('k', { "a": "1" })  
 *     三、移除/清理    
 *         移除: cache.remove('k');  
 *         清理:cache.clear();   
 * 】  
 * @type {String}  
 */  
var postfix = '_aszapp'; // 缓存前缀   
/**  
 * 设置缓存   
 * @param  {[type]} k [键名]  
 * @param  {[type]} v [键值]  
 * @param  {[type]} t [时间、单位秒]  
 */  
function put(k, v, t) {  
    uni.setStorageSync(k, v)   
    var seconds = parseInt(t);  
    if (seconds > 0) {  
        var timestamp = Date.parse(new Date());  
        timestamp = timestamp / 1000 + seconds;  
        uni.setStorageSync(k + postfix, timestamp + "")  
    } else {  
        uni.removeStorageSync(k + postfix)  
    }  
}  

/**  
 * 获取缓存   
 * @param  {[type]} k   [键名]  
 * @param  {[type]} def [获取为空时默认]  
 */  
function get(k, def) {  
    var deadtime = parseInt(uni.getStorageSync(k + postfix))   
    if (deadtime) {  
        if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {  
            if (def) {  
                return def;  
            } else {  
                return false;  
            }  
        }  
    }  
    var res = uni.getStorageSync(k);  
    if (res) {  
        return res;  
    } else {  
        if (def == undefined  || def == "") {  
            def = false;   
        }  
        return def;  
    }  
}  

function remove(k) {  
    uni.removeStorageSync(k);  
    uni.removeStorageSync(k + postfix);  
}  

/**  
 * 清理所有缓存  
 * @return {[type]} [description]  
 */  
function clear() {  
    uni.clearStorageSync();  
}  

module.exports = {  
    put: put,  
    get: get,  
    remove: remove,  
    clear: clear,  
}
继续阅读 »

具体使用方法 看代码。

/**  
 * 缓存数据优化  
 * var cache = require('utils/cache.js');  
 * import cache from '../cache'  
 * 使用方法 【  
 *     一、设置缓存  
 *         string    cache.put('k', 'string你好啊');  
 *         json      cache.put('k', { "b": "3" }, 2);  
 *         array     cache.put('k', [1, 2, 3]);  
 *         boolean   cache.put('k', true);  
 *     二、读取缓存  
 *         默认值    cache.get('k')  
 *         string    cache.get('k', '你好')  
 *         json      cache.get('k', { "a": "1" })  
 *     三、移除/清理    
 *         移除: cache.remove('k');  
 *         清理:cache.clear();   
 * 】  
 * @type {String}  
 */  
var postfix = '_aszapp'; // 缓存前缀   
/**  
 * 设置缓存   
 * @param  {[type]} k [键名]  
 * @param  {[type]} v [键值]  
 * @param  {[type]} t [时间、单位秒]  
 */  
function put(k, v, t) {  
    uni.setStorageSync(k, v)   
    var seconds = parseInt(t);  
    if (seconds > 0) {  
        var timestamp = Date.parse(new Date());  
        timestamp = timestamp / 1000 + seconds;  
        uni.setStorageSync(k + postfix, timestamp + "")  
    } else {  
        uni.removeStorageSync(k + postfix)  
    }  
}  

/**  
 * 获取缓存   
 * @param  {[type]} k   [键名]  
 * @param  {[type]} def [获取为空时默认]  
 */  
function get(k, def) {  
    var deadtime = parseInt(uni.getStorageSync(k + postfix))   
    if (deadtime) {  
        if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {  
            if (def) {  
                return def;  
            } else {  
                return false;  
            }  
        }  
    }  
    var res = uni.getStorageSync(k);  
    if (res) {  
        return res;  
    } else {  
        if (def == undefined  || def == "") {  
            def = false;   
        }  
        return def;  
    }  
}  

function remove(k) {  
    uni.removeStorageSync(k);  
    uni.removeStorageSync(k + postfix);  
}  

/**  
 * 清理所有缓存  
 * @return {[type]} [description]  
 */  
function clear() {  
    uni.clearStorageSync();  
}  

module.exports = {  
    put: put,  
    get: get,  
    remove: remove,  
    clear: clear,  
}
收起阅读 »

uniapp:写了一个缓存 uni.request 的类,分享一下!

因为不是每个request都需要去服务器拿。缓存一下,有助于提高性能。

直接替换uni.request(params) 到 Utils.cashRequest(duration, params)就行了。

Utils.cacheRequest(3600,{  
                    url: "your-web-service-url",  
                    success: function (resp) {  
                        uni.stopPullDownRefresh();  
                    }.bind(this)  
                })
export default class Utils {      
    static cacheRequest(cacheDruation=3600, params) {  
        var key = JSON.stringify({url:params.url,data:params.data});  
        var cache = uni.getStorageSync(key);  
        var now = (new Date()).getTime() / 1000;  
        var success = params.success;  

        if (cache && cache.time + cacheDruation > now) {  
            success(cache.resp);  
            return;  
        }  

        params.success = function (resp) {  
            success(resp);  
            uni.setStorageSync(key, {  
                time: now,  
                resp: resp  
            });  
        }.bind(this);  
        uni.request(params);  
    }  
}
继续阅读 »

因为不是每个request都需要去服务器拿。缓存一下,有助于提高性能。

直接替换uni.request(params) 到 Utils.cashRequest(duration, params)就行了。

Utils.cacheRequest(3600,{  
                    url: "your-web-service-url",  
                    success: function (resp) {  
                        uni.stopPullDownRefresh();  
                    }.bind(this)  
                })
export default class Utils {      
    static cacheRequest(cacheDruation=3600, params) {  
        var key = JSON.stringify({url:params.url,data:params.data});  
        var cache = uni.getStorageSync(key);  
        var now = (new Date()).getTime() / 1000;  
        var success = params.success;  

        if (cache && cache.time + cacheDruation > now) {  
            success(cache.resp);  
            return;  
        }  

        params.success = function (resp) {  
            success(resp);  
            uni.setStorageSync(key, {  
                time: now,  
                resp: resp  
            });  
        }.bind(this);  
        uni.request(params);  
    }  
}
收起阅读 »

android权限(permission)大全

转载别人的 原文地址文章末尾有,记录下

1.android.permission.WRITE_USER_DICTIONARY
允许应用程序向用户词典中写入新词

2.android.permission.WRITE_SYNC_SETTINGS
写入Google在线同步设置

3.android.permission.WRITE_SOCIAL_STREAM
读取用户的社交信息流

4.android.permission.WRITE_SMS
允许程序写短信

5.android.permission.WRITE_SETTINGS
允许程序读取或写入系统设置

6.android.permission.WRITE_SECURE_SETTINGS
允许应用程序读取或写入安全系统设置

7.android.permission.WRITE_PROFILE
允许程序写入个人资料数据

8.com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
允许一个应用程序写(但不可读)用户的浏览历史和书签

9.android.permission.WRITE_GSERVICES
允许程序修改Google服务地图

10.android.permission.WRITE_EXTERNAL_STORAGE
允许程序写入外部存储,如SD卡上写文件

11.android.permission.WRITE_CONTACTS
写入联系人,但不可读取

12.android.permission.WRITE_CALL_LOG
允许程序写入(但是不能读)用户的联系人数据

13.android.permission.WRITE_CALENDAR
允许程序写入日程,但不可读取

14.android.permission.WRITE_APN_SETTINGS
允许程序写入网络GPRS接入点设置

15.android.permission.WAKE_LOCK
允许程序在手机屏幕关闭后后台进程仍然运行

16.android.permission.VIBRATE
允许程序振动

17.android.permission.USE_SIP
允许程序使用SIP视频服务

18.android.permission.USE_CREDENTIALS
允许程序请求验证从AccountManager

19.android.permission.UPDATE_DEVICE_STATS
允许程序更新设备状态

20.com.android.launcher.permission.UNINSTALL_SHORTCUT
删除快捷方式

21.android.permission.TRANSMIT_IR
允许使用设备的红外发射器,如果可用

22.android.permission.SYSTEM_ALERT_WINDOW
允许程序显示系统窗口

23.android.permission.SUBSCRIBED_FEEDS_WRITE
允许程序写入或修改订阅内容的数据库

24.android.permission.SUBSCRIBED_FEEDS_READ
允许程序访问订阅信息的数据库

22.android.permission.STATUS_BAR
允许程序打开、关闭、禁用状态栏

23.android.permission.SIGNAL_PERSISTENT_PROCESSES
允许程序发送一个永久的进程信号

24.android.permission.SET_WALLPAPER_HINTS
允许程序设置壁纸建议

25.android.permission.SET_WALLPAPER
允许程序设置桌面壁纸

26.android.permission.SET_TIME_ZONE
允许程序设置系统时区

27.android.permission.SET_TIME
允许程序设置系统时间

28.android.permission.SET_PROCESS_LIMIT
允许程序设置最大的进程数量的限制

29.android.permission.SET_PREFERRED_APPLICATIONS
允许程序设置应用的参数,已不再工作具体查看addPackageToPreferred(String) 介绍

30.android.permission.SET_POINTER_SPEED
无法被第三方应用获得,系统权限

31.android.permission.SET_ORIENTATION
允许程序设置屏幕方向为横屏或标准方式显示,不用于普通应用

32.android.permission.SET_DEBUG_APP
允许程序设置调试程序,一般用于开发

33.android.permission.SET_ANIMATION_SCALE
允许程序设置全局动画缩放

34.android.permission.SET_ALWAYS_FINISH
允许程序设置程序在后台是否总是退出

36.com.android.alarm.permission.SET_ALARM
允许程序设置闹铃提醒

37.android.permission.SET_ACTIVITY_WATCHER
允许程序设置Activity观察器一般用于monkey测试

38.android.permission.SEND_SMS
允许程序发送短信

39.android.permission.SEND_RESPOND_VIA_MESSAGE
允许用户在来电的时候用你的应用进行即时的短信息回复。

40.android.permission.RESTART_PACKAGES
允许程序结束任务通过restartPackage(String)方法,该方式将在外来放弃

41.android.permission.REORDER_TASKS
允许程序重新排序系统Z轴运行中的任务

42.android.permission.RECORD_AUDIO
允许程序录制声音通过手机或耳机的麦克

43.android.permission.RECEIVE_WAP_PUSH
允许程序接收WAP PUSH信息

44.android.permission.RECEIVE_SMS
允许程序接收短信

45.android.permission.RECEIVE_MMS
允许程序接收彩信

46.android.permission.RECEIVE_BOOT_COMPLETED
允许程序开机自动运行

47.android.permission.REBOOT
允许程序重新启动设备

48.android.permission.READ_USER_DICTIONARY
从一个提供器中获取数据,针对对应的提供器,应用程序需要“读访问权限”

49.android.permission.READ_SYNC_STATS
允许程序读取同步状态,获得Google在线同步状态

50.android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置,读取Google在线同步设置

51.android.permission.READ_SOCIAL_STREAM
读取用户的社交信息流

52.android.permission.READ_SMS
允许程序读取短信内容

53.android.permission.READ_PROFILE
访问用户个人资料

54.android.permission.READ_PHONE_STATE
允许程序访问电话状态

55.android.permission.READ_LOGS
允许程序读取系统底层日志

56.android.permission.READ_INPUT_STATE
允许程序读取当前键的输入状态,仅用于系统

57.com.android.browser.permission.READ_HISTORY_BOOKMARKS
允许程序读取浏览器收藏夹和历史记录

58.android.permission.READ_FRAME_BUFFER
允许程序读取帧缓存用于屏幕截图

59.android.permission.READ_EXTERNAL_STORAGE
程序可以读取设备外部存储空间(内置SDcard和外置SDCard)的文件,如果您的App已经添加了“WRITE_EXTERNAL_STORAGE ”权限 ,则就没

必要添加读的权限了,写权限已经包含了读权限了。

60.android.permission.READ_CONTACTS
允许程序访问联系人通讯录信息

61.android.permission.READ_CALL_LOG
读取通话记录

62.android.permission.READ_CALENDAR
允许程序读取用户的日程信息

63.android.permission.PROCESS_OUTGOING_CALLS
允许程序监视,修改或放弃播出电话

64.android.permission.PERSISTENT_ACTIVITY
允许程序创建一个永久的Activity,该功能标记为将来将被移除

65.android.permission.NFC
允许程序执行NFC近距离通讯操作,用于移动支持

66.android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许程序挂载、反挂载外部文件系统

67.android.permission.MOUNT_FORMAT_FILESYSTEMS
允许程序格式化可移动文件系统,比如格式化清空SD卡

68.android.permission.MODIFY_PHONE_STATE
允许程序修改电话状态,如飞行模式,但不包含替换系统拨号器界面

69.android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改声音设置信息

70.android.permission.MEDIA_CONTENT_CONTROL
允许一个应用程序知道什么是播放和控制其内容。不被第三方应用使用。

71.android.permission.MASTER_CLEAR
允许程序执行软格式化,删除系统配置信息

72.android.permission.MANAGE_DOCUMENTS
允许一个应用程序来管理文档的访问,通常是一个文档选择器部分

73.android.permission.MANAGE_APP_TOKENS
管理创建、摧毁、Z轴顺序,仅用于系统

74.android.permission.MANAGE_ACCOUNTS
允许程序管理AccountManager中的账户列表

75.android.permission.LOCATION_HARDWARE
允许一个应用程序中使用定位功能的硬件,不使用第三方应用

76.android.permission.KILL_BACKGROUND_PROCESSES
允许程序调用killBackgroundProcesses(String).方法结束后台进程

77.android.permission.INTERNET
允许程序访问网络连接,可能产生GPRS流量

78.android.permission.INTERNAL_SYSTEM_WINDOW
允许程序打开内部窗口,不对第三方应用程序开放此权限

79.com.android.launcher.permission.INSTALL_SHORTCUT
创建快捷方式

80.android.permission.INSTALL_PACKAGES
允许程序安装应用

81.android.permission.INSTALL_LOCATION_PROVIDER
允许程序安装定位提供

82.android.permission.INJECT_EVENTS
允许程序访问本程序的底层事件,获取按键、轨迹球的事件流

83.android.permission.HARDWARE_TEST
允许程序访问硬件辅助设备,用于硬件测试

84.android.permission.GLOBAL_SEARCH
允许程序允许全局搜索

85.android.permission.GET_TOP_ACTIVITY_INFO
允许一个应用程序检索私有信息是当前最顶级的活动,不被第三方应用使用

86.android.permission.GET_TASKS
允许程序获取任务信息

87.android.permission.GET_PACKAGE_SIZE
允许程序获取应用的文件大小

88.android.permission.GET_ACCOUNTS
允许程序访问账户Gmail列表

89.android.permission.FORCE_BACK
允许程序强制使用back后退按键,无论Activity是否在顶层

90.android.permission.FLASHLIGHT
允许访问闪光灯

91.android.permission.FACTORY_TEST
允许程序运行工厂测试模式

92.android.permission.EXPAND_STATUS_BAR
允许程序扩展或收缩状态栏

93.android.permission.DUMP
允许程序获取系统dump信息从系统服务

94.android.permission.DISABLE_KEYGUARD
允许程序禁用键盘锁

95.android.permission.DIAGNOSTIC
允许程序到RW到诊断资源

96.android.permission.DEVICE_POWER
允许程序访问底层电源管理

97.android.permission.DELETE_PACKAGES
允许程序删除应用

98.android.permission.DELETE_CACHE_FILES
允许程序删除缓存文件

99.android.permission.CONTROL_LOCATION_UPDATES
允许程序获得移动网络定位信息改变

100.android.permission.CLEAR_APP_USER_DATA
允许程序清除用户数据

101.android.permission.CLEAR_APP_CACHE
允许程序清除应用缓存

102.android.permission.CHANGE_WIFI_STATE
允许程序改变WiFi状态

103.android.permission.CHANGE_WIFI_MULTICAST_STATE
允许程序改变WiFi多播状态

104.android.permission.CHANGE_NETWORK_STATE
允许程序改变网络状态,如是否联网

105.android.permission.CHANGE_CONFIGURATION
允许当前应用改变配置,如定位

106.android.permission.CHANGE_COMPONENT_ENABLED_STATE
改变组件是否启用状态

107.android.permission.CAPTURE_VIDEO_OUTPUT
允许一个应用程序捕获视频输出,不被第三方应用使用

108.android.permission.CAPTURE_SECURE_VIDEO_OUTPUT
允许一个应用程序捕获视频输出。不被第三方应用使用

109.android.permission.CAPTURE_AUDIO_OUTPUT
允许一个应用程序捕获音频输出。不被第三方应用使用

110.android.permission.CAMERA
允许程序访问摄像头进行拍照

111.android.permission.CALL_PRIVILEGED
允许程序拨打电话,替换系统的拨号器界面

112.android.permission.CALL_PHONE
允许程序从非系统拨号器里拨打电话

113.android.permission.BROADCAST_WAP_PUSH
WAP PUSH服务收到后触发一个广播

114.android.permission.BROADCAST_STICKY
允许程序收到广播后快速收到下一个广播

115.android.permission.BROADCAST_SMS
允许程序当收到短信时触发一个广播

116.android.permission.BROADCAST_PACKAGE_REMOVED
允许程序删除时广播

117.android.permission.BRICK
能够禁用手机,非常危险,顾名思义就是让手机变成砖头

118.android.permission.BLUETOOTH_PRIVILEGED
允许应用程序配对蓝牙设备,而无需用户交互。这不是第三方应用程序可用。

119.android.permission.BLUETOOTH_ADMIN
允许程序进行发现和配对新的蓝牙设备

120.android.permission.BLUETOOTH
允许程序连接配对过的蓝牙设备

121.android.permission.BIND_WALLPAPER
必须通过WallpaperService服务来请求,只有系统才能用

122.android.permission.BIND_VPN_SERVICE
绑定VPN服务
必须通过VpnService服务来请求,只有系统才能用

123.android.permission.BIND_TEXT_SERVICE
必须要求textservice(例如吗 spellcheckerservice),以确保只有系统可以绑定到它。

124.android.permission.BIND_REMOTEVIEWS
必须通过RemoteViewsService服务来请求,只有系统才能用

125.android.permission.BIND_PRINT_SERVICE
必须要求由printservice,以确保只有系统可以绑定到它。

126.android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
必须要求由notificationlistenerservice,以确保只有系统可以绑定到它。

127.android.permission.BIND_NFC_SERVICE
由hostapduservice或offhostapduservice必须确保只有系统可以绑定到它。

128.android.permission.BIND_INPUT_METHOD
请求InputMethodService服务,只有系统才能使用

129.android.permission.BIND_DEVICE_ADMIN
请求系统管理员接收者receiver,只有系统才能使用

130.android.permission.BIND_APPWIDGET
允许程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限

131.android.permission.BIND_ACCESSIBILITY_SERVICE
请求accessibilityservice服务,以确保只有系统可以绑定到它。

132.android.permission.AUTHENTICATE_ACCOUNTS
允许程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息

133.com.android.voicemail.permission.ADD_VOICEMAIL
允许一个应用程序添加语音邮件系统

134.android.permission.ACCOUNT_MANAGER
允许程序获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限

135.android.permission.ACCESS_WIFI_STATE
允许程序获取当前WiFi接入的状态以及WLAN热点的信息

136.android.permission.ACCESS_SURFACE_FLINGER
Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图

137.android.permission.ACCESS_NETWORK_STATE
允许程序获取网络信息状态,如当前的网络连接是否有效

138.android.permission.ACCESS_MOCK_LOCATION
允许程序获取模拟定位信息,一般用于帮助开发者调试应用

139.android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允许程序访问额外的定位提供者指令

140.android.permission.ACCESS_FINE_LOCATION
允许程序通过GPS芯片接收卫星的定位信息

141.android.permission.ACCESS_COARSE_LOCATION
允许程序通过WiFi或移动基站的方式获取用户错略的经纬度信息

142.android.permission.ACCESS_CHECKIN_PROPERTIES
允许程序读取或写入登记check-in数据库属性表的权限

文章转载:https://blog.csdn.net/hai_qing_xu_kong/article/details/24265533

继续阅读 »

转载别人的 原文地址文章末尾有,记录下

1.android.permission.WRITE_USER_DICTIONARY
允许应用程序向用户词典中写入新词

2.android.permission.WRITE_SYNC_SETTINGS
写入Google在线同步设置

3.android.permission.WRITE_SOCIAL_STREAM
读取用户的社交信息流

4.android.permission.WRITE_SMS
允许程序写短信

5.android.permission.WRITE_SETTINGS
允许程序读取或写入系统设置

6.android.permission.WRITE_SECURE_SETTINGS
允许应用程序读取或写入安全系统设置

7.android.permission.WRITE_PROFILE
允许程序写入个人资料数据

8.com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
允许一个应用程序写(但不可读)用户的浏览历史和书签

9.android.permission.WRITE_GSERVICES
允许程序修改Google服务地图

10.android.permission.WRITE_EXTERNAL_STORAGE
允许程序写入外部存储,如SD卡上写文件

11.android.permission.WRITE_CONTACTS
写入联系人,但不可读取

12.android.permission.WRITE_CALL_LOG
允许程序写入(但是不能读)用户的联系人数据

13.android.permission.WRITE_CALENDAR
允许程序写入日程,但不可读取

14.android.permission.WRITE_APN_SETTINGS
允许程序写入网络GPRS接入点设置

15.android.permission.WAKE_LOCK
允许程序在手机屏幕关闭后后台进程仍然运行

16.android.permission.VIBRATE
允许程序振动

17.android.permission.USE_SIP
允许程序使用SIP视频服务

18.android.permission.USE_CREDENTIALS
允许程序请求验证从AccountManager

19.android.permission.UPDATE_DEVICE_STATS
允许程序更新设备状态

20.com.android.launcher.permission.UNINSTALL_SHORTCUT
删除快捷方式

21.android.permission.TRANSMIT_IR
允许使用设备的红外发射器,如果可用

22.android.permission.SYSTEM_ALERT_WINDOW
允许程序显示系统窗口

23.android.permission.SUBSCRIBED_FEEDS_WRITE
允许程序写入或修改订阅内容的数据库

24.android.permission.SUBSCRIBED_FEEDS_READ
允许程序访问订阅信息的数据库

22.android.permission.STATUS_BAR
允许程序打开、关闭、禁用状态栏

23.android.permission.SIGNAL_PERSISTENT_PROCESSES
允许程序发送一个永久的进程信号

24.android.permission.SET_WALLPAPER_HINTS
允许程序设置壁纸建议

25.android.permission.SET_WALLPAPER
允许程序设置桌面壁纸

26.android.permission.SET_TIME_ZONE
允许程序设置系统时区

27.android.permission.SET_TIME
允许程序设置系统时间

28.android.permission.SET_PROCESS_LIMIT
允许程序设置最大的进程数量的限制

29.android.permission.SET_PREFERRED_APPLICATIONS
允许程序设置应用的参数,已不再工作具体查看addPackageToPreferred(String) 介绍

30.android.permission.SET_POINTER_SPEED
无法被第三方应用获得,系统权限

31.android.permission.SET_ORIENTATION
允许程序设置屏幕方向为横屏或标准方式显示,不用于普通应用

32.android.permission.SET_DEBUG_APP
允许程序设置调试程序,一般用于开发

33.android.permission.SET_ANIMATION_SCALE
允许程序设置全局动画缩放

34.android.permission.SET_ALWAYS_FINISH
允许程序设置程序在后台是否总是退出

36.com.android.alarm.permission.SET_ALARM
允许程序设置闹铃提醒

37.android.permission.SET_ACTIVITY_WATCHER
允许程序设置Activity观察器一般用于monkey测试

38.android.permission.SEND_SMS
允许程序发送短信

39.android.permission.SEND_RESPOND_VIA_MESSAGE
允许用户在来电的时候用你的应用进行即时的短信息回复。

40.android.permission.RESTART_PACKAGES
允许程序结束任务通过restartPackage(String)方法,该方式将在外来放弃

41.android.permission.REORDER_TASKS
允许程序重新排序系统Z轴运行中的任务

42.android.permission.RECORD_AUDIO
允许程序录制声音通过手机或耳机的麦克

43.android.permission.RECEIVE_WAP_PUSH
允许程序接收WAP PUSH信息

44.android.permission.RECEIVE_SMS
允许程序接收短信

45.android.permission.RECEIVE_MMS
允许程序接收彩信

46.android.permission.RECEIVE_BOOT_COMPLETED
允许程序开机自动运行

47.android.permission.REBOOT
允许程序重新启动设备

48.android.permission.READ_USER_DICTIONARY
从一个提供器中获取数据,针对对应的提供器,应用程序需要“读访问权限”

49.android.permission.READ_SYNC_STATS
允许程序读取同步状态,获得Google在线同步状态

50.android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置,读取Google在线同步设置

51.android.permission.READ_SOCIAL_STREAM
读取用户的社交信息流

52.android.permission.READ_SMS
允许程序读取短信内容

53.android.permission.READ_PROFILE
访问用户个人资料

54.android.permission.READ_PHONE_STATE
允许程序访问电话状态

55.android.permission.READ_LOGS
允许程序读取系统底层日志

56.android.permission.READ_INPUT_STATE
允许程序读取当前键的输入状态,仅用于系统

57.com.android.browser.permission.READ_HISTORY_BOOKMARKS
允许程序读取浏览器收藏夹和历史记录

58.android.permission.READ_FRAME_BUFFER
允许程序读取帧缓存用于屏幕截图

59.android.permission.READ_EXTERNAL_STORAGE
程序可以读取设备外部存储空间(内置SDcard和外置SDCard)的文件,如果您的App已经添加了“WRITE_EXTERNAL_STORAGE ”权限 ,则就没

必要添加读的权限了,写权限已经包含了读权限了。

60.android.permission.READ_CONTACTS
允许程序访问联系人通讯录信息

61.android.permission.READ_CALL_LOG
读取通话记录

62.android.permission.READ_CALENDAR
允许程序读取用户的日程信息

63.android.permission.PROCESS_OUTGOING_CALLS
允许程序监视,修改或放弃播出电话

64.android.permission.PERSISTENT_ACTIVITY
允许程序创建一个永久的Activity,该功能标记为将来将被移除

65.android.permission.NFC
允许程序执行NFC近距离通讯操作,用于移动支持

66.android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许程序挂载、反挂载外部文件系统

67.android.permission.MOUNT_FORMAT_FILESYSTEMS
允许程序格式化可移动文件系统,比如格式化清空SD卡

68.android.permission.MODIFY_PHONE_STATE
允许程序修改电话状态,如飞行模式,但不包含替换系统拨号器界面

69.android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改声音设置信息

70.android.permission.MEDIA_CONTENT_CONTROL
允许一个应用程序知道什么是播放和控制其内容。不被第三方应用使用。

71.android.permission.MASTER_CLEAR
允许程序执行软格式化,删除系统配置信息

72.android.permission.MANAGE_DOCUMENTS
允许一个应用程序来管理文档的访问,通常是一个文档选择器部分

73.android.permission.MANAGE_APP_TOKENS
管理创建、摧毁、Z轴顺序,仅用于系统

74.android.permission.MANAGE_ACCOUNTS
允许程序管理AccountManager中的账户列表

75.android.permission.LOCATION_HARDWARE
允许一个应用程序中使用定位功能的硬件,不使用第三方应用

76.android.permission.KILL_BACKGROUND_PROCESSES
允许程序调用killBackgroundProcesses(String).方法结束后台进程

77.android.permission.INTERNET
允许程序访问网络连接,可能产生GPRS流量

78.android.permission.INTERNAL_SYSTEM_WINDOW
允许程序打开内部窗口,不对第三方应用程序开放此权限

79.com.android.launcher.permission.INSTALL_SHORTCUT
创建快捷方式

80.android.permission.INSTALL_PACKAGES
允许程序安装应用

81.android.permission.INSTALL_LOCATION_PROVIDER
允许程序安装定位提供

82.android.permission.INJECT_EVENTS
允许程序访问本程序的底层事件,获取按键、轨迹球的事件流

83.android.permission.HARDWARE_TEST
允许程序访问硬件辅助设备,用于硬件测试

84.android.permission.GLOBAL_SEARCH
允许程序允许全局搜索

85.android.permission.GET_TOP_ACTIVITY_INFO
允许一个应用程序检索私有信息是当前最顶级的活动,不被第三方应用使用

86.android.permission.GET_TASKS
允许程序获取任务信息

87.android.permission.GET_PACKAGE_SIZE
允许程序获取应用的文件大小

88.android.permission.GET_ACCOUNTS
允许程序访问账户Gmail列表

89.android.permission.FORCE_BACK
允许程序强制使用back后退按键,无论Activity是否在顶层

90.android.permission.FLASHLIGHT
允许访问闪光灯

91.android.permission.FACTORY_TEST
允许程序运行工厂测试模式

92.android.permission.EXPAND_STATUS_BAR
允许程序扩展或收缩状态栏

93.android.permission.DUMP
允许程序获取系统dump信息从系统服务

94.android.permission.DISABLE_KEYGUARD
允许程序禁用键盘锁

95.android.permission.DIAGNOSTIC
允许程序到RW到诊断资源

96.android.permission.DEVICE_POWER
允许程序访问底层电源管理

97.android.permission.DELETE_PACKAGES
允许程序删除应用

98.android.permission.DELETE_CACHE_FILES
允许程序删除缓存文件

99.android.permission.CONTROL_LOCATION_UPDATES
允许程序获得移动网络定位信息改变

100.android.permission.CLEAR_APP_USER_DATA
允许程序清除用户数据

101.android.permission.CLEAR_APP_CACHE
允许程序清除应用缓存

102.android.permission.CHANGE_WIFI_STATE
允许程序改变WiFi状态

103.android.permission.CHANGE_WIFI_MULTICAST_STATE
允许程序改变WiFi多播状态

104.android.permission.CHANGE_NETWORK_STATE
允许程序改变网络状态,如是否联网

105.android.permission.CHANGE_CONFIGURATION
允许当前应用改变配置,如定位

106.android.permission.CHANGE_COMPONENT_ENABLED_STATE
改变组件是否启用状态

107.android.permission.CAPTURE_VIDEO_OUTPUT
允许一个应用程序捕获视频输出,不被第三方应用使用

108.android.permission.CAPTURE_SECURE_VIDEO_OUTPUT
允许一个应用程序捕获视频输出。不被第三方应用使用

109.android.permission.CAPTURE_AUDIO_OUTPUT
允许一个应用程序捕获音频输出。不被第三方应用使用

110.android.permission.CAMERA
允许程序访问摄像头进行拍照

111.android.permission.CALL_PRIVILEGED
允许程序拨打电话,替换系统的拨号器界面

112.android.permission.CALL_PHONE
允许程序从非系统拨号器里拨打电话

113.android.permission.BROADCAST_WAP_PUSH
WAP PUSH服务收到后触发一个广播

114.android.permission.BROADCAST_STICKY
允许程序收到广播后快速收到下一个广播

115.android.permission.BROADCAST_SMS
允许程序当收到短信时触发一个广播

116.android.permission.BROADCAST_PACKAGE_REMOVED
允许程序删除时广播

117.android.permission.BRICK
能够禁用手机,非常危险,顾名思义就是让手机变成砖头

118.android.permission.BLUETOOTH_PRIVILEGED
允许应用程序配对蓝牙设备,而无需用户交互。这不是第三方应用程序可用。

119.android.permission.BLUETOOTH_ADMIN
允许程序进行发现和配对新的蓝牙设备

120.android.permission.BLUETOOTH
允许程序连接配对过的蓝牙设备

121.android.permission.BIND_WALLPAPER
必须通过WallpaperService服务来请求,只有系统才能用

122.android.permission.BIND_VPN_SERVICE
绑定VPN服务
必须通过VpnService服务来请求,只有系统才能用

123.android.permission.BIND_TEXT_SERVICE
必须要求textservice(例如吗 spellcheckerservice),以确保只有系统可以绑定到它。

124.android.permission.BIND_REMOTEVIEWS
必须通过RemoteViewsService服务来请求,只有系统才能用

125.android.permission.BIND_PRINT_SERVICE
必须要求由printservice,以确保只有系统可以绑定到它。

126.android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
必须要求由notificationlistenerservice,以确保只有系统可以绑定到它。

127.android.permission.BIND_NFC_SERVICE
由hostapduservice或offhostapduservice必须确保只有系统可以绑定到它。

128.android.permission.BIND_INPUT_METHOD
请求InputMethodService服务,只有系统才能使用

129.android.permission.BIND_DEVICE_ADMIN
请求系统管理员接收者receiver,只有系统才能使用

130.android.permission.BIND_APPWIDGET
允许程序告诉appWidget服务需要访问小插件的数据库,只有非常少的应用才用到此权限

131.android.permission.BIND_ACCESSIBILITY_SERVICE
请求accessibilityservice服务,以确保只有系统可以绑定到它。

132.android.permission.AUTHENTICATE_ACCOUNTS
允许程序通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息

133.com.android.voicemail.permission.ADD_VOICEMAIL
允许一个应用程序添加语音邮件系统

134.android.permission.ACCOUNT_MANAGER
允许程序获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问的权限

135.android.permission.ACCESS_WIFI_STATE
允许程序获取当前WiFi接入的状态以及WLAN热点的信息

136.android.permission.ACCESS_SURFACE_FLINGER
Android平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图

137.android.permission.ACCESS_NETWORK_STATE
允许程序获取网络信息状态,如当前的网络连接是否有效

138.android.permission.ACCESS_MOCK_LOCATION
允许程序获取模拟定位信息,一般用于帮助开发者调试应用

139.android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
允许程序访问额外的定位提供者指令

140.android.permission.ACCESS_FINE_LOCATION
允许程序通过GPS芯片接收卫星的定位信息

141.android.permission.ACCESS_COARSE_LOCATION
允许程序通过WiFi或移动基站的方式获取用户错略的经纬度信息

142.android.permission.ACCESS_CHECKIN_PROPERTIES
允许程序读取或写入登记check-in数据库属性表的权限

文章转载:https://blog.csdn.net/hai_qing_xu_kong/article/details/24265533

收起阅读 »