HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

你们应该学学apicloud,做个AppLoader,能降低开发门槛

你们应该学学apicloud,做个AppLoader,能降低开发门槛,你们宣传说uniapp无所不能,最后环境都弄不来,还指望用uniapp开发东西吗,一个调试都做不完善咋个开发,这个应该思考一下

你们应该学学apicloud,做个AppLoader,能降低开发门槛,你们宣传说uniapp无所不能,最后环境都弄不来,还指望用uniapp开发东西吗,一个调试都做不完善咋个开发,这个应该思考一下

头部图片上传

<template>
<view class="service">
<view class="content" @click="uploadImg">
<image v-for="(item,index) in imgArr" :src="item" mode="widthFix"></image>
<image src="../../static/img/10.jpg" mode="widthFix" v-show="shows"></image>
</view>
</view>
</template>

<script>
export default {
data() {
return {
imgArr:[],
shows:true
}
},
onLoad() {

        },  
        methods: {  
            uploadImg(){  
                if(this.shows){  
                    this.shows=false  
                }  
                let that = this  
                uni.chooseImage({  
                    success(res) {  
                        console.log(res.tempFilePaths)  
                        that.imgArr = res.tempFilePaths;  
                        console.log(that.imgArr)  
                        }  
                })  
            }  
        }  
    }  

</script>
<style>
.content{width: 100%;text-align: center;}
.content image{width:80px;border-radius: 50%;}
</style>

继续阅读 »

<template>
<view class="service">
<view class="content" @click="uploadImg">
<image v-for="(item,index) in imgArr" :src="item" mode="widthFix"></image>
<image src="../../static/img/10.jpg" mode="widthFix" v-show="shows"></image>
</view>
</view>
</template>

<script>
export default {
data() {
return {
imgArr:[],
shows:true
}
},
onLoad() {

        },  
        methods: {  
            uploadImg(){  
                if(this.shows){  
                    this.shows=false  
                }  
                let that = this  
                uni.chooseImage({  
                    success(res) {  
                        console.log(res.tempFilePaths)  
                        that.imgArr = res.tempFilePaths;  
                        console.log(that.imgArr)  
                        }  
                })  
            }  
        }  
    }  

</script>
<style>
.content{width: 100%;text-align: center;}
.content image{width:80px;border-radius: 50%;}
</style>

收起阅读 »

错误:ERROR ITMS-90085

打包

用的HBuilderX(2.9.8) 在线云打包方式打包

上传包

用的VMware15.5虚拟机安装的 macOS10.14版本(后来升级到了10.15)
通过Transporter这个软件上传。

在10月的时候更新过一次版本,没有遇到问题,一切正常!

但这次12月9日更新版本就遇到问题了,报了这个错误

于是搜索了很多资料,还找到了https://ask.dcloud.net.cn/article/239(Appstore提交错误及解决方案),但还是没看明白,无奈只能接着在虚拟机里面巴拉巴拉!!

网上搜到的大部分都是用的Apple Developer(好像是Xcode的一部分),对于Transporter上传app说的不多,那就先看看这个软件(看是不是他的更新导致的)

首先打开App Store 找到Transporter,查看更新内容,

新功能那赫然写着“上传app元数据软件包ITMS”,
再结合之间DClound的回复“安装XCode”,
猜测App Store的上架改规则了,需要安装XCode,Transporter才能上传,
XCode安装包11G(想哭)太大了吧,虚拟机才40G,空间不足,又经过一顿折腾扩充到60个G,才顺利安装完XCode

再次打开Transporter上传,见证奇迹的时刻

一次上传成功!

总结:
应该是Transporter改规则了,依赖XCode的功能来上传元数据ITMS。

小白,点到为止!!

继续阅读 »

打包

用的HBuilderX(2.9.8) 在线云打包方式打包

上传包

用的VMware15.5虚拟机安装的 macOS10.14版本(后来升级到了10.15)
通过Transporter这个软件上传。

在10月的时候更新过一次版本,没有遇到问题,一切正常!

但这次12月9日更新版本就遇到问题了,报了这个错误

于是搜索了很多资料,还找到了https://ask.dcloud.net.cn/article/239(Appstore提交错误及解决方案),但还是没看明白,无奈只能接着在虚拟机里面巴拉巴拉!!

网上搜到的大部分都是用的Apple Developer(好像是Xcode的一部分),对于Transporter上传app说的不多,那就先看看这个软件(看是不是他的更新导致的)

首先打开App Store 找到Transporter,查看更新内容,

新功能那赫然写着“上传app元数据软件包ITMS”,
再结合之间DClound的回复“安装XCode”,
猜测App Store的上架改规则了,需要安装XCode,Transporter才能上传,
XCode安装包11G(想哭)太大了吧,虚拟机才40G,空间不足,又经过一顿折腾扩充到60个G,才顺利安装完XCode

再次打开Transporter上传,见证奇迹的时刻

一次上传成功!

总结:
应该是Transporter改规则了,依赖XCode的功能来上传元数据ITMS。

小白,点到为止!!

收起阅读 »

个推十周年大放送!开发工具、爆款产品,全部免费!

SDK

“互动十年,每日鲸彩”。今年是每日互动(个推)成立十周年的日子。

从2010年到2020年,个推从一家创业公司成长为A股上市企业,从深耕消息推送技术到为各垂直行业提供专业的数据智能服务。

走过10年的我们,依然秉持 “每日生活 科技改变” 的初心,带着 “数据让产业更智能” 的使命,继续踏浪前行,创造别样鲸彩!

值个推十周年之际

我们特推出感恩特惠活动

以回馈广大开发者和行业客户

十年有礼,狂欢开启

爆款SDK,免费用1年

热门大数据产品,0门槛试用

个推消息推送VIP、用户画像、应用统计

三大APP开发工具

0元全部配齐

一站式满足多种开发需求

人群洞察、精准投放服务、实时人口数盘
三类热门大数据产品
帮助从业者快速进行数据分析
全方位输出大数据解决方案

个推十周年感恩特惠

限定31天,每天都是“双十一”

快来参与吧!

继续阅读 »

“互动十年,每日鲸彩”。今年是每日互动(个推)成立十周年的日子。

从2010年到2020年,个推从一家创业公司成长为A股上市企业,从深耕消息推送技术到为各垂直行业提供专业的数据智能服务。

走过10年的我们,依然秉持 “每日生活 科技改变” 的初心,带着 “数据让产业更智能” 的使命,继续踏浪前行,创造别样鲸彩!

值个推十周年之际

我们特推出感恩特惠活动

以回馈广大开发者和行业客户

十年有礼,狂欢开启

爆款SDK,免费用1年

热门大数据产品,0门槛试用

个推消息推送VIP、用户画像、应用统计

三大APP开发工具

0元全部配齐

一站式满足多种开发需求

人群洞察、精准投放服务、实时人口数盘
三类热门大数据产品
帮助从业者快速进行数据分析
全方位输出大数据解决方案

个推十周年感恩特惠

限定31天,每天都是“双十一”

快来参与吧!

收起阅读 »

标梵讲解认识HTML

html HTML5

什么是 HTML?
HTML 是用来描述网页的一种语言。
HTML 指的是 超文本标记语言(Hyper Text Markup Language)
HTML 不是一种编程语言,而是一种标记语言 (markup language)

什么是超文本?
“超文本”是超级文本的中文缩写,英文名Hyper Text,缩写HT。
超文本是一种组织信息的方式。超文本是用超链接的方法,将各种不同空间的文字信息(文本中的文字、图表及其他信息媒体)组织在一起的网状文本。这些组织在一起的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

什么是标记语言?
标记语言,是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标识。
标记语言是一套标记标签 (markup tag)
HTML 使用标记标签来描述网页

什么是标记标签?
HTML 标记标签通常被称为 HTML标签 (HTML tag)
HTML 标签是由尖括号包围的关键词,比如 <html>
HTML 标签通常是成对出现的,比如<b> 和 </b>
标签对中的第一个标签是 开始标签,第二个标签是 结束标签
开始和结束标签也被称为开放标签和闭合标签

文章编辑:标梵互动(https://www.biaofun.com/)

继续阅读 »

什么是 HTML?
HTML 是用来描述网页的一种语言。
HTML 指的是 超文本标记语言(Hyper Text Markup Language)
HTML 不是一种编程语言,而是一种标记语言 (markup language)

什么是超文本?
“超文本”是超级文本的中文缩写,英文名Hyper Text,缩写HT。
超文本是一种组织信息的方式。超文本是用超链接的方法,将各种不同空间的文字信息(文本中的文字、图表及其他信息媒体)组织在一起的网状文本。这些组织在一起的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

什么是标记语言?
标记语言,是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标识。
标记语言是一套标记标签 (markup tag)
HTML 使用标记标签来描述网页

什么是标记标签?
HTML 标记标签通常被称为 HTML标签 (HTML tag)
HTML 标签是由尖括号包围的关键词,比如 <html>
HTML 标签通常是成对出现的,比如<b> 和 </b>
标签对中的第一个标签是 开始标签,第二个标签是 结束标签
开始和结束标签也被称为开放标签和闭合标签

文章编辑:标梵互动(https://www.biaofun.com/)

收起阅读 »

网站开发技术的小白学习之路

外部网站

WWW服务器上相互链接的的一系列网页组成一个网站,通常把网站称作WWW网店或Web站点。广义上说,网站有硬件与软件两大部分组成。硬件主要是指服务器(计算机),软件则只操作系统、Web服务器软件和应用程序(包括静态和动态网页文件以及数据库)等。从狭义上说,网站则是指基于Web服务器的应用程序。网站的体系结构如:

网站的工作流程
客户端通过浏览器来显示数据并实现与服务器的交互。在服务器端由Web服务器通过HTTP协议与客户端的浏览器交互,Web服务器和应用服务器(这里的应用服务器通常是指某种软件环境)也使用HTTP作为他们之间的通信协议。而应用服务器与数据库服务器之间采用的机制进行通信,如ODBC(open dtabase connectiviy,开放数据库链接)、JDBC(java database connectivity,java数据库连接)、SQL(structure query language,结构化查询语言)等。通常Web服务器接受应用服务器处理。应用服务器接受由Web服务器传来的处理请求,并根据需要查询或更新数据库,进行应用逻辑的处理,然后将处理结果传回给Web服务器。数据库服务器实现数据的存取功能,负责数据库的组织并向应用逻辑提供接口。

文章编辑:标梵互动(https://www.biaofun.com/)

继续阅读 »

WWW服务器上相互链接的的一系列网页组成一个网站,通常把网站称作WWW网店或Web站点。广义上说,网站有硬件与软件两大部分组成。硬件主要是指服务器(计算机),软件则只操作系统、Web服务器软件和应用程序(包括静态和动态网页文件以及数据库)等。从狭义上说,网站则是指基于Web服务器的应用程序。网站的体系结构如:

网站的工作流程
客户端通过浏览器来显示数据并实现与服务器的交互。在服务器端由Web服务器通过HTTP协议与客户端的浏览器交互,Web服务器和应用服务器(这里的应用服务器通常是指某种软件环境)也使用HTTP作为他们之间的通信协议。而应用服务器与数据库服务器之间采用的机制进行通信,如ODBC(open dtabase connectiviy,开放数据库链接)、JDBC(java database connectivity,java数据库连接)、SQL(structure query language,结构化查询语言)等。通常Web服务器接受应用服务器处理。应用服务器接受由Web服务器传来的处理请求,并根据需要查询或更新数据库,进行应用逻辑的处理,然后将处理结果传回给Web服务器。数据库服务器实现数据的存取功能,负责数据库的组织并向应用逻辑提供接口。

文章编辑:标梵互动(https://www.biaofun.com/)

收起阅读 »

学习了一下原生插件开发 分享一个小工具,测试支付宝支付,支持沙箱,有源码

原生插件 支付 支付宝

android代码有点大上传不了

# uni代码包 包括aar本地插件和java主要文件

迫于官方的支付只有 requestpayment error,这个项目为了方便测试直接返回sdk的结果,没有结构化数据

上图

<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/f1f72fd07216da23661951ca3a297fdb.jpg"/>

<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/532e5113df548bf2244d6af7f7f5af01.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/3f1351184176b99a7557ff945606178b.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/6d7162fea08b0f3376c28c0bbbe21beb.jpg"/>

补个打包好的app:https://474b.com/file/13908934-475066729

继续阅读 »

android代码有点大上传不了

# uni代码包 包括aar本地插件和java主要文件

迫于官方的支付只有 requestpayment error,这个项目为了方便测试直接返回sdk的结果,没有结构化数据

上图

<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/f1f72fd07216da23661951ca3a297fdb.jpg"/>

<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/532e5113df548bf2244d6af7f7f5af01.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/3f1351184176b99a7557ff945606178b.jpg"/>
<img width="240" src="https://img-cdn-tc.dcloud.net.cn/uploads/article/20201209/6d7162fea08b0f3376c28c0bbbe21beb.jpg"/>

补个打包好的app:https://474b.com/file/13908934-475066729

收起阅读 »

uni api的真正同步写法实现await-input

有经验的开发者都会发现小程序的回掉写法嵌套太深,不利维护;

fail忘写,导致白屏异常。对比,部分同学实现了then的写法,却又觉得仍然不够sync。

工欲善其事,必先利其器。

那么推荐个结合了nodejs思想的小工具

有经验的开发者都会发现小程序的回掉写法嵌套太深,不利维护;

fail忘写,导致白屏异常。对比,部分同学实现了then的写法,却又觉得仍然不够sync。

工欲善其事,必先利其器。

那么推荐个结合了nodejs思想的小工具

canvasToTempFilePath。在ios上面截图白屏的问题

1.设置canvasToTempFilePath的宽高的数值为number,

  1. 如果报错,添加适当的延时

1.设置canvasToTempFilePath的宽高的数值为number,

  1. 如果报错,添加适当的延时

uniapp集成微信JSSDK(wx、jWeixin)变量冲突

H5集成企业微信jweixin-1.2.0.js后发现安卓端wx对象不能正常使用,iphone端jWeixin对象不可以正常使用,和预定义的变量冲突,CMD等加载方式都不行,只能分平台进行判断
let weixinApi;
if (/android/i.test(navigator.userAgent)){
weixinApi = jWeixin;
}else if (/ipad|iphone|mac/i.test(navigator.userAgent)){
weixinApi = wx;
}else{
reslove(false);
}

继续阅读 »

H5集成企业微信jweixin-1.2.0.js后发现安卓端wx对象不能正常使用,iphone端jWeixin对象不可以正常使用,和预定义的变量冲突,CMD等加载方式都不行,只能分平台进行判断
let weixinApi;
if (/android/i.test(navigator.userAgent)){
weixinApi = jWeixin;
}else if (/ipad|iphone|mac/i.test(navigator.userAgent)){
weixinApi = wx;
}else{
reslove(false);
}

收起阅读 »

plus.navigator.setStatusBarStyle('dark')

App

现阶段 plus.navigator.setStatusBarStyle('dark') 在onShow中加定时器使用

现阶段 plus.navigator.setStatusBarStyle('dark') 在onShow中加定时器使用

uniapp获取设备的ip和Mac----仅支持安卓

Android HBuilderX Mac uniapp
                          //获取Ip地址  
            getDeviceIp(){  
                           var deviceIp = ‘’   
                if(plus.os.name=="Android"){  
                    var Context = plus.android.importClass("android.content.Context");  
                    var wifiManager =plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
                    var wifiInfo = plus.android.invoke(wifiManager, "getConnectionInfo");  
                    var ipAddress = plus.android.invoke(wifiInfo, "getIpAddress");  
                    deviceIp = '';  
                    if (ipAddress != 0) {  
                        deviceIp = ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "." + (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));  
                    }  
                }  
                console.log(deviceIp)  
            return deviceIp;  
            },
                           //获取mac地址  
            getDeviceMac(){  
                                var deviceMac = ‘’   
                var net = plus.android.importClass("java.net.NetworkInterface")  
                var wl0 = net.getByName('wlan0')  
                var macByte = wl0.getHardwareAddress()  
                deviceMac = ''  
                for (var i = 0; i < macByte.length; i++) {  
                    var tmp = "";  
                    var num = macByte[i];  
                    if (num < 0) {  
                        tmp = (255 + num + 1).toString(16);  
                    } else {  
                        tmp = num.toString(16);  
                    }  
                    if (tmp.length == 1) {  
                        tmp = "0" + tmp;  
                    }  
                    deviceMac += tmp;  
                }  
                console.log(deviceMac)  
            },
继续阅读 »
                          //获取Ip地址  
            getDeviceIp(){  
                           var deviceIp = ‘’   
                if(plus.os.name=="Android"){  
                    var Context = plus.android.importClass("android.content.Context");  
                    var wifiManager =plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
                    var wifiInfo = plus.android.invoke(wifiManager, "getConnectionInfo");  
                    var ipAddress = plus.android.invoke(wifiInfo, "getIpAddress");  
                    deviceIp = '';  
                    if (ipAddress != 0) {  
                        deviceIp = ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "." + (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));  
                    }  
                }  
                console.log(deviceIp)  
            return deviceIp;  
            },
                           //获取mac地址  
            getDeviceMac(){  
                                var deviceMac = ‘’   
                var net = plus.android.importClass("java.net.NetworkInterface")  
                var wl0 = net.getByName('wlan0')  
                var macByte = wl0.getHardwareAddress()  
                deviceMac = ''  
                for (var i = 0; i < macByte.length; i++) {  
                    var tmp = "";  
                    var num = macByte[i];  
                    if (num < 0) {  
                        tmp = (255 + num + 1).toString(16);  
                    } else {  
                        tmp = num.toString(16);  
                    }  
                    if (tmp.length == 1) {  
                        tmp = "0" + tmp;  
                    }  
                    deviceMac += tmp;  
                }  
                console.log(deviceMac)  
            },
收起阅读 »