仿vscode的material的暗黑色主题
注意 需要切换主题到 雅蓝
{
"editor.caretWidth": 1,
"editor.colorScheme": "Atom One Dark",
"explorer.autoReveal": true,
"editor.renderWhitespace": false,
"editor.codeassistFontSize": 14,
"editor.viewIndentationGuides": false,//是否显示代码缩进对齐线
"explorer.iconTheme": "vs-seti",
"workbench.colorCustomizations": {
"[Atom One Dark]": {
//标题栏
"titleBar.activeBackground":"#263238",
//工具栏
"toolBar.background": "#263238", //工具条背景
"toolBar.border": "#263238",
"toolBar.hoverBackground": "#263238",
//按钮
"button.background": "#80CBC420", //按钮背景
"button.foreground": "#ffffff", //按钮前景
//文本框
"input.background": "#303C41", //文本框背景颜色
"input.foreground": "#ffffff", //前景颜色
"focusBorder": "#FFFFFF00", //文本框有焦点时边框颜色
"input.border": "#FFFFFF10",
"input.hoverBackground": "#263238",
//列表控件
"list.foreground": "#495C66", //前景颜色
"list.activeSelectionBackground": "#263238",
"list.activeSelectionForeground": "#80CBC4",
"list.hoverBackground": "#263238",
"list.inactiveSelectionBackground": "#00000030",
//项目资源管理器
"sideBar.background": "#263238",
"sideBarSectionHeader.background": "#263238",
// 标签卡
// "tab.Background":"#263238",
"editorGroupHeader.tabsBackground": "#263238", //背景颜色
"tab.border": "#263238", //边框颜色
"tab.activeBorder": "#263238", //选中时的边框颜色
"tab.activeBackground":"#263238",
"tab.activeForeground": "#FFFFFF",
"tab.inactiveBackground": "#263238", //未选中时的背景颜色
"tab.inactiveForeground": "#607a86",
"tab.hoverBackground": "#263238",
"tab.unfocusedActiveBorder": "#546E7A",
//代码助手
"editorSuggestWidget.background": "#263238", //助手弹窗背景颜色
"editorSuggestWidget.border": "#263238", //助手边框颜色
"editorSuggestWidget.foreground": "#495C66", //前景颜色
"editorSuggestWidget.highlightForeground": "#80CBC4",
"editorSuggestWidget.selectedBackground": "#00000050", //助手弹窗选中条目时背景颜色
//预览按钮
"extensionButton.prominentBackground": "#263238",
"extensionButton.prominentForeground": "#495C66",
"extensionButton.border": "#263238",
"extensionButton.prominentHoverBackground": "#263238",
// 分栏
"editorGroup.border": "#495C66", //分割线颜色
"tab.unfocusedActiveForeground": "#EEFFFF", //未激活分组里选中标签前景色
//滚动条
"scrollbarSlider.background": "#495C66",
"scrollbarSlider.hoverBackground": "#495C66",
//搜索下拉框
"inputValidation.infoBorder": "#82AAFF50",
//编辑区
"editor.background": "#263238",
// "editor.foreground": "#EEFFFF",
// "editorLineNumber.foreground": "#37474F",
"editorLineNumber.activeForeground": "#607a86",
// "editor.lineHighlightBorder": "#00000000",
"editor.rangeHighlightBackground": "#FFFFFF0d",
// "editorWhitespace.foreground": "#EEFFFF40",
//设置
"settings.dropdownForeground": "#EEFFFF",
"settings.dropdownBackground": "#263238",
"settings.textInputForeground": "#ffffff",
"settings.textInputBackground": "#263238",
"settings.dropdownBorder": "#263238",
"settings.dropdownListBorder": "#263238", //下拉列表item边框
"settings.dropdownForeground": "#ffffff", //下拉列表前景颜色
//终端
"terminal.background": "#263238",
"terminal.foreground": "#ffffff",
"panelTitle.activeForeground": "#ffffff",
"console.background": "#263238",
"debug.background": "#263238",
//底部状态栏
"statusBar.background": "#263238",
"statusBar.foreground": "#495C66",
"statusBar.border": "#495C66",
"minimap.handle.background": "#495C66"
}
}
}
注意 需要切换主题到 雅蓝
{
"editor.caretWidth": 1,
"editor.colorScheme": "Atom One Dark",
"explorer.autoReveal": true,
"editor.renderWhitespace": false,
"editor.codeassistFontSize": 14,
"editor.viewIndentationGuides": false,//是否显示代码缩进对齐线
"explorer.iconTheme": "vs-seti",
"workbench.colorCustomizations": {
"[Atom One Dark]": {
//标题栏
"titleBar.activeBackground":"#263238",
//工具栏
"toolBar.background": "#263238", //工具条背景
"toolBar.border": "#263238",
"toolBar.hoverBackground": "#263238",
//按钮
"button.background": "#80CBC420", //按钮背景
"button.foreground": "#ffffff", //按钮前景
//文本框
"input.background": "#303C41", //文本框背景颜色
"input.foreground": "#ffffff", //前景颜色
"focusBorder": "#FFFFFF00", //文本框有焦点时边框颜色
"input.border": "#FFFFFF10",
"input.hoverBackground": "#263238",
//列表控件
"list.foreground": "#495C66", //前景颜色
"list.activeSelectionBackground": "#263238",
"list.activeSelectionForeground": "#80CBC4",
"list.hoverBackground": "#263238",
"list.inactiveSelectionBackground": "#00000030",
//项目资源管理器
"sideBar.background": "#263238",
"sideBarSectionHeader.background": "#263238",
// 标签卡
// "tab.Background":"#263238",
"editorGroupHeader.tabsBackground": "#263238", //背景颜色
"tab.border": "#263238", //边框颜色
"tab.activeBorder": "#263238", //选中时的边框颜色
"tab.activeBackground":"#263238",
"tab.activeForeground": "#FFFFFF",
"tab.inactiveBackground": "#263238", //未选中时的背景颜色
"tab.inactiveForeground": "#607a86",
"tab.hoverBackground": "#263238",
"tab.unfocusedActiveBorder": "#546E7A",
//代码助手
"editorSuggestWidget.background": "#263238", //助手弹窗背景颜色
"editorSuggestWidget.border": "#263238", //助手边框颜色
"editorSuggestWidget.foreground": "#495C66", //前景颜色
"editorSuggestWidget.highlightForeground": "#80CBC4",
"editorSuggestWidget.selectedBackground": "#00000050", //助手弹窗选中条目时背景颜色
//预览按钮
"extensionButton.prominentBackground": "#263238",
"extensionButton.prominentForeground": "#495C66",
"extensionButton.border": "#263238",
"extensionButton.prominentHoverBackground": "#263238",
// 分栏
"editorGroup.border": "#495C66", //分割线颜色
"tab.unfocusedActiveForeground": "#EEFFFF", //未激活分组里选中标签前景色
//滚动条
"scrollbarSlider.background": "#495C66",
"scrollbarSlider.hoverBackground": "#495C66",
//搜索下拉框
"inputValidation.infoBorder": "#82AAFF50",
//编辑区
"editor.background": "#263238",
// "editor.foreground": "#EEFFFF",
// "editorLineNumber.foreground": "#37474F",
"editorLineNumber.activeForeground": "#607a86",
// "editor.lineHighlightBorder": "#00000000",
"editor.rangeHighlightBackground": "#FFFFFF0d",
// "editorWhitespace.foreground": "#EEFFFF40",
//设置
"settings.dropdownForeground": "#EEFFFF",
"settings.dropdownBackground": "#263238",
"settings.textInputForeground": "#ffffff",
"settings.textInputBackground": "#263238",
"settings.dropdownBorder": "#263238",
"settings.dropdownListBorder": "#263238", //下拉列表item边框
"settings.dropdownForeground": "#ffffff", //下拉列表前景颜色
//终端
"terminal.background": "#263238",
"terminal.foreground": "#ffffff",
"panelTitle.activeForeground": "#ffffff",
"console.background": "#263238",
"debug.background": "#263238",
//底部状态栏
"statusBar.background": "#263238",
"statusBar.foreground": "#495C66",
"statusBar.border": "#495C66",
"minimap.handle.background": "#495C66"
}
}
}
收起阅读 »
uniapp从app端拉起微信小程序,打开小程序的一些经验
我是新手,从app端拉起打开微信小程序,这个功能困扰了我一个星期,在这感谢NO.3389师傅的指导,在他的要求下特写此经验帖给大家分享下!
onload里的代码:
// #ifdef APP-PLUS
console.log("plus");
plus.share.getServices(function(s){
var shares={};
for (var i = 0; i < s.length; i++) {
var t=s[i];
console.log(t);
shares[t.id]=t;
console.log(t.id);
}
var sweixin=shares['weixin'];
that.setData({
sweixin:sweixin
})
}, function(e){
console.log("获取分享服务列表失败:"+e.message);
});
//#endif
sweixin需要放到data里去
data() {
return {
sweixin:''
};
}
method里:
kanshipin: function () {
var n = this;
//#ifdef APP-PLUS
console.log(n.sweixin);
n.sweixin?n.sweixin.launchMiniProgram({
id:'这个是你要打开的那个小程序原始id,长这样做gh_c306838810e9'
}):plus.nativeUI.alert('当前环境不支持微信操作!');
//#endif
}
第一次发帖,请多包涵,目前还不知道怎么打开指定页面 怎么传参数 还得研究
我是新手,从app端拉起打开微信小程序,这个功能困扰了我一个星期,在这感谢NO.3389师傅的指导,在他的要求下特写此经验帖给大家分享下!
onload里的代码:
// #ifdef APP-PLUS
console.log("plus");
plus.share.getServices(function(s){
var shares={};
for (var i = 0; i < s.length; i++) {
var t=s[i];
console.log(t);
shares[t.id]=t;
console.log(t.id);
}
var sweixin=shares['weixin'];
that.setData({
sweixin:sweixin
})
}, function(e){
console.log("获取分享服务列表失败:"+e.message);
});
//#endif
sweixin需要放到data里去
data() {
return {
sweixin:''
};
}
method里:
kanshipin: function () {
var n = this;
//#ifdef APP-PLUS
console.log(n.sweixin);
n.sweixin?n.sweixin.launchMiniProgram({
id:'这个是你要打开的那个小程序原始id,长这样做gh_c306838810e9'
}):plus.nativeUI.alert('当前环境不支持微信操作!');
//#endif
}
第一次发帖,请多包涵,目前还不知道怎么打开指定页面 怎么传参数 还得研究
收起阅读 »wap2app 封装打包后如何实现长按保存图片到相册。支持多图预览保存。值得收藏
本人小白一枚,如果是大神请忽略,只提供给新手。一直在网上找方法,结果啰嗦了一大堆什么也没得到结果。浪费时间
第一步:下载附件里的文件:
解压后得到这些文件:这里不支持上传图片大概是这些
wap2app_longtap-master
第二步:双击打开 wap2app_longtap-master 文件夹,把里面的 css文件夹和 js文件夹上传到自己的网站任何一个文件夹内
比如上传到D:/wwwroot/tpod 注意这个tpod是自己新建立的文件,自己随便建立一个,然后方便在后面调用。
第三步:修改自己需要长按图片保存的那个网页代码。怎么修改在附件里有个index.html 做参考 代码修改的时候一定记得
你当时上传的js和css文件的路径,当然是tpod/css/... tpod/js/....
其实很简单的一个问题就这样解决了。效果还不错。
不知道写了这些你看明白了吗?希望可以帮助到你。
本人小白一枚,如果是大神请忽略,只提供给新手。一直在网上找方法,结果啰嗦了一大堆什么也没得到结果。浪费时间
第一步:下载附件里的文件:
解压后得到这些文件:这里不支持上传图片大概是这些
wap2app_longtap-master
第二步:双击打开 wap2app_longtap-master 文件夹,把里面的 css文件夹和 js文件夹上传到自己的网站任何一个文件夹内
比如上传到D:/wwwroot/tpod 注意这个tpod是自己新建立的文件,自己随便建立一个,然后方便在后面调用。
第三步:修改自己需要长按图片保存的那个网页代码。怎么修改在附件里有个index.html 做参考 代码修改的时候一定记得
你当时上传的js和css文件的路径,当然是tpod/css/... tpod/js/....
其实很简单的一个问题就这样解决了。效果还不错。
不知道写了这些你看明白了吗?希望可以帮助到你。
uniapp开发需求
现外包一个uniapp开发需求,请有能力的朋友私聊。需求如下:
开发要求:用uniapp开发,需打包成安卓和IOS两个版本APP
APP使用设备:在ipad上使用
页面参考原型:https://1peup3.axshare.com/#id=que1ss&p=%E5%B9%B3%E5%8F%B0%E6%A6%82%E5%86%B5&g=1
原型仅供参考,与实际开发完成的网页版页面差不了多少,最终开发需按照网页版页面来,即将网页版尺寸缩小为ipad尺寸。
工期:一个月内
具体事宜,QQ私聊:339571330
现外包一个uniapp开发需求,请有能力的朋友私聊。需求如下:
开发要求:用uniapp开发,需打包成安卓和IOS两个版本APP
APP使用设备:在ipad上使用
页面参考原型:https://1peup3.axshare.com/#id=que1ss&p=%E5%B9%B3%E5%8F%B0%E6%A6%82%E5%86%B5&g=1
原型仅供参考,与实际开发完成的网页版页面差不了多少,最终开发需按照网页版页面来,即将网页版尺寸缩小为ipad尺寸。
工期:一个月内
具体事宜,QQ私聊:339571330
uni.createLivePusherContext缺少‘orientation’,‘device-position’等接口
uni的推流接口比微信小程序的推流接口少了很多推流的接口
默认摄像头无法设置, 画面方向无法设置等等
https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html
uni的推流接口比微信小程序的推流接口少了很多推流的接口
默认摄像头无法设置, 画面方向无法设置等等
https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html
uniapp app内微信支付和支付宝支付 前端部分
由于文档中写的不清楚,所以走了些弯路,记录下来
前端所要做的就是
-
请求后端接口,获取到orderinfo
-
调用支付API uni.requestPayment
-
处理回调
主要就是orderinfo格式文档写的不够清楚,这里进行说明orderinfo完全是后端返回的,前端不做任何处理,所以orderinfo有问题推给后端,前端不用浪费时间, app的支付不管ios还是android都是string类型
微信orderinfo格式
"{\"appid\":\"xxxxxxxx\",\"partnerid\":\"xxxxxxx\",\"prepayid\":\"xxxxxxxxxxxxxxxx\",\"timestamp\":\"1579779903\",\"noncestr\":\"xxxxxxx\",\"package\":\"Sign": "WXPay\",\"sign\":\"xxxxxxxxxxxxxxxxxxxx\"}"
支付宝orderinfo格式
app_id=xxxxxxxxx&method=xxxxxxxxxx&format=JSON&charset=UTF-8&sign_type=RSA2&version=1.0&return_url=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx¬ify_url=xxxxx×tamp=xxxxxx&sign=xxxxxxx&biz_content=xxxxxxxxxx
uni.requestPayment({
provider: 'alipay',
orderInfo: '后端返回的orderinfo字符串',
success: res => {
// 进入此回调说明支付成功
},
fail: err => {
const message = err.errMsg || '';
if (message.indexOf('[payment支付宝:62001]') !== -1) {
uni.showModal({
content: '您已取消支付。如有需要,您可在我的订单里重新付款。30分钟内有效。',
showCancel: false
});
} else {
uni.showModal({
content: '支付失败,原因为: ' + message,
showCancel: false
});
}
},
complete: () => {
this.submitting = false;
}
});
由于文档中写的不清楚,所以走了些弯路,记录下来
前端所要做的就是
-
请求后端接口,获取到orderinfo
-
调用支付API uni.requestPayment
-
处理回调
主要就是orderinfo格式文档写的不够清楚,这里进行说明orderinfo完全是后端返回的,前端不做任何处理,所以orderinfo有问题推给后端,前端不用浪费时间, app的支付不管ios还是android都是string类型
微信orderinfo格式
"{\"appid\":\"xxxxxxxx\",\"partnerid\":\"xxxxxxx\",\"prepayid\":\"xxxxxxxxxxxxxxxx\",\"timestamp\":\"1579779903\",\"noncestr\":\"xxxxxxx\",\"package\":\"Sign": "WXPay\",\"sign\":\"xxxxxxxxxxxxxxxxxxxx\"}"
支付宝orderinfo格式
app_id=xxxxxxxxx&method=xxxxxxxxxx&format=JSON&charset=UTF-8&sign_type=RSA2&version=1.0&return_url=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx¬ify_url=xxxxx×tamp=xxxxxx&sign=xxxxxxx&biz_content=xxxxxxxxxx
uni.requestPayment({
provider: 'alipay',
orderInfo: '后端返回的orderinfo字符串',
success: res => {
// 进入此回调说明支付成功
},
fail: err => {
const message = err.errMsg || '';
if (message.indexOf('[payment支付宝:62001]') !== -1) {
uni.showModal({
content: '您已取消支付。如有需要,您可在我的订单里重新付款。30分钟内有效。',
showCancel: false
});
} else {
uni.showModal({
content: '支付失败,原因为: ' + message,
showCancel: false
});
}
},
complete: () => {
this.submitting = false;
}
});
收起阅读 »
wkwebview下彻底解决ajax跨域问题
尽管官方提供plus.net.XMLHttpRequest口口声声说是支持跨域,但实际上本地跨域却不支持,很是扯蛋。
本地跨域是指加载本地file://开头(即file协议)文件,比如用ajax请求本地html或json文件,在ios的uiwebview没问题,但在wkwebview下,即使用plus.net.XMLHttpRequest也不行,这里想到方法是自己写一个XMLHttpRequest,核心是利用plus.io.resolveLocalFileSystemURL来实现。修改一下你的程序启动代码,引入这个自定义的XMLHttpRequest文件,然后在plus初始化相关代码里加入以下代码:
var oxhr = jQuery.ajaxSettings.xhr;
var plusXhr = function() {
try {
return new plus.net.XMLHttpRequest();
} catch ( e ) {}
};
var myXhr = function() {
try {
return new MyXmlHttpRequest();
} catch ( e ) {}
};
jQuery.ajaxSettings.xhr = plusXhr; //默认使用plus的XMLHttpRequest
var _ajax = $.ajax;
$.ajax = function(url, options) {//重写ajax方法
var urlx = url;
if (typeof url === 'object' && url !== null) {
urlx = url.url;
}
if (urlx.indexOf('http') !== 0) {
jQuery.ajaxSettings.xhr = myXhr; //本地文件,file协议或相对路径时使用本地xhr
} else {
jQuery.ajaxSettings.xhr = plusXhr; //还原成plus自带的
}
return _ajax(url, options);
}
【注】以上是jquery示例,如果是mui、uni-app请根据具体情况参照修改。
附件更新:2020.02.05
尽管官方提供plus.net.XMLHttpRequest口口声声说是支持跨域,但实际上本地跨域却不支持,很是扯蛋。
本地跨域是指加载本地file://开头(即file协议)文件,比如用ajax请求本地html或json文件,在ios的uiwebview没问题,但在wkwebview下,即使用plus.net.XMLHttpRequest也不行,这里想到方法是自己写一个XMLHttpRequest,核心是利用plus.io.resolveLocalFileSystemURL来实现。修改一下你的程序启动代码,引入这个自定义的XMLHttpRequest文件,然后在plus初始化相关代码里加入以下代码:
var oxhr = jQuery.ajaxSettings.xhr;
var plusXhr = function() {
try {
return new plus.net.XMLHttpRequest();
} catch ( e ) {}
};
var myXhr = function() {
try {
return new MyXmlHttpRequest();
} catch ( e ) {}
};
jQuery.ajaxSettings.xhr = plusXhr; //默认使用plus的XMLHttpRequest
var _ajax = $.ajax;
$.ajax = function(url, options) {//重写ajax方法
var urlx = url;
if (typeof url === 'object' && url !== null) {
urlx = url.url;
}
if (urlx.indexOf('http') !== 0) {
jQuery.ajaxSettings.xhr = myXhr; //本地文件,file协议或相对路径时使用本地xhr
} else {
jQuery.ajaxSettings.xhr = plusXhr; //还原成plus自带的
}
return _ajax(url, options);
}
【注】以上是jquery示例,如果是mui、uni-app请根据具体情况参照修改。
附件更新:2020.02.05
收起阅读 »for循环生成的元素无法获取到ref
本人最近使用bindingX写动画,需要使用ref来绑定元素。
本来普通的view里ref='aaa'这样在使用时候很顺手,this.$refs.name.ref就可以拿到;
后来意识到需要数据渲染,for循环后突然报错了,undefined,最后找到问题竟然在this.$refs.name拿到的竟然是类似html的标签,this.$refs里对应的name下与打印出来的东西不一致,导致我很困惑,为什么如此之不一致。
就在我蒙了三天之后,我就想打印一下this.$refs.name的字符串,this.$refs.name[0]竟然不报错,
最后,完美解决。this.$refs.name[0].ref就可以拿到之前的东西。
后来,偶然看到了这个,当然会vue的大神们不要嘲笑,这篇就是为了分享给那些同我一样,没有vue开发经验硬写app的彩笔们。
本人最近使用bindingX写动画,需要使用ref来绑定元素。
本来普通的view里ref='aaa'这样在使用时候很顺手,this.$refs.name.ref就可以拿到;
后来意识到需要数据渲染,for循环后突然报错了,undefined,最后找到问题竟然在this.$refs.name拿到的竟然是类似html的标签,this.$refs里对应的name下与打印出来的东西不一致,导致我很困惑,为什么如此之不一致。
就在我蒙了三天之后,我就想打印一下this.$refs.name的字符串,this.$refs.name[0]竟然不报错,
最后,完美解决。this.$refs.name[0].ref就可以拿到之前的东西。
后来,偶然看到了这个,当然会vue的大神们不要嘲笑,这篇就是为了分享给那些同我一样,没有vue开发经验硬写app的彩笔们。
收起阅读 »请教一个技术支持(外包)的问题
各位开发者大神,我使用标准H5开发网站,并使用HBUILDER进行了打包,安卓APP是没有问题,用的挺好。
之前注册了苹果的开发者,使用证书打包,上传平台,苹果审核4.2,APP太简单,没有原生功能,没有通过审核。
现在我想请教
1.基于我现有的网站构架,加一些原生功能,适当丰富一下APP(其实主要是为了IOS过审)。
- 有没有相关的外包机构可以帮忙做,大约多少钱
谢谢各位了
各位开发者大神,我使用标准H5开发网站,并使用HBUILDER进行了打包,安卓APP是没有问题,用的挺好。
之前注册了苹果的开发者,使用证书打包,上传平台,苹果审核4.2,APP太简单,没有原生功能,没有通过审核。
现在我想请教
1.基于我现有的网站构架,加一些原生功能,适当丰富一下APP(其实主要是为了IOS过审)。
- 有没有相关的外包机构可以帮忙做,大约多少钱
谢谢各位了
android 插件 新增 activity
因需要自定义UI界面,在此记录,供遇到同样问题的伙伴作参考:
第1步:MyModule extends WXSDKEngine.DestroyableModule
第2步:Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class); mActivity.startActivityForResult(intent, 100);
第3步:MyActivity extends Activity;此处切记继承Activity,不能继承其它扩展的activity,否则会导致界面不展示,程序异常
第4步:在androidmanifest.xml添加权限,添加MyActivity节点
第5步:打成aar包发布
因需要自定义UI界面,在此记录,供遇到同样问题的伙伴作参考:
第1步:MyModule extends WXSDKEngine.DestroyableModule
第2步:Intent intent = new Intent(this.mWXSDKInstance.getContext(), MyActivity.class); mActivity.startActivityForResult(intent, 100);
第3步:MyActivity extends Activity;此处切记继承Activity,不能继承其它扩展的activity,否则会导致界面不展示,程序异常
第4步:在androidmanifest.xml添加权限,添加MyActivity节点
第5步:打成aar包发布
收起阅读 »