
可视化编辑照片书
照片编辑可视化小程序,前端uniapp,后端PHP,一款综合全面的图片编辑软件,支持裁剪、旋转、改尺寸、压缩体积、文字、贴纸、边框等图片编辑功能。软件汇集了大量的模板和装饰素材,采用可视化的设计界面,用户只需导入图片编辑即可制作成书。软件支持快速排版,简单易用,适合制作个性杂志、个性台历、纪念册、个性笔记本等。照片书排版是一款功能强大的照片书制作工具。软件汇集了大量的模板和装饰素材,采用可视化的设计界面,用户只需导入图片编辑即可制作成书。软件支持快速排版,简单易用,适合制作个性杂志、个性台历、纪念册、个性笔记本等。可以打包app,目前已有现成小程序可以体验,欢迎有需要的人士前来询问,V:zwwz123123
照片编辑可视化小程序,前端uniapp,后端PHP,一款综合全面的图片编辑软件,支持裁剪、旋转、改尺寸、压缩体积、文字、贴纸、边框等图片编辑功能。软件汇集了大量的模板和装饰素材,采用可视化的设计界面,用户只需导入图片编辑即可制作成书。软件支持快速排版,简单易用,适合制作个性杂志、个性台历、纪念册、个性笔记本等。照片书排版是一款功能强大的照片书制作工具。软件汇集了大量的模板和装饰素材,采用可视化的设计界面,用户只需导入图片编辑即可制作成书。软件支持快速排版,简单易用,适合制作个性杂志、个性台历、纪念册、个性笔记本等。可以打包app,目前已有现成小程序可以体验,欢迎有需要的人士前来询问,V:zwwz123123
收起阅读 »
uniapp 主动触发pda扫码,完整代码
pda我这里调用action:com.rfid.SCAN_CMD,获取action:com.rfid.SCAN, 根据自己手里的pda去设置,可以联系厂家售后
需在pda扫码软件中将模式改为广播
<template>
<view>
<view v-for="(item, index) in list" :key="index"> {{ item }} </view>
<button @click="scan">扫描</button>
</view>
</template>
<script>
import { scanCode } from "@/utils/scan";
import scan from "@/mixins/scan";
export default {
mixins: [scan],
data() {
return {
list: [],
};
},
methods: {
async scan() {
const code = await scanCode();
console.log("手动扫描", code);
this.list.unshift("手动扫描" + code);
},
onReceiveCode(code) {
console.log("页面监听", code);
this.list.unshift("页面监听" + code);
},
},
};
</script>
//app.vue
<script>
import { registerReceiver } from "@/utils/scan";
export default {
onLaunch() {
registerReceiver();
}
};
</script>
</style>
// @/utils/scan.js
const timeout = 5 * 1000; //扫码超时时间
const main = plus.android.runtimeMainActivity();
// 全局只允许一个地方获取,存储最新的回调函数,获取完立即销毁
let scanCallback = null;
//存储订阅,每个页面可以单独订阅,优先级低于scanCallback
const subscriptions = [];
export const byteArrayToString = (array) => {
return String.fromCharCode.apply(String, array);
};
const sleep = (ms) => {
return new Promise((resolve) => setTimeout(resolve, ms));
};
export const registerReceiver = () => {
//获取Android意图过滤类
const IntentFilter = plus.android.importClass("android.content.IntentFilter");
//实例化意图过滤
const filter = new IntentFilter();
//获取扫码成功的意图广播,
filter.addAction("com.rfid.SCAN");
const receiver = plus.android.implements(
"io.dcloud.feature.internal.reflect.BroadcastReceiver",
{
onReceive: function (context, intent) {
plus.android.importClass(intent);
// key 为 厂商提供,需要自己联系厂商获取 ,有的厂商使用getStringExtra就直接可以
const dataByte = intent.getByteArrayExtra("data");
const code = byteArrayToString(dataByte);
console.log("receiver:" + code);
if (scanCallback) {
scanCallback(code);
} else {
subscriptions.forEach((cb) => cb(code));
}
},
}
);
main.registerReceiver(receiver, filter);
};
export const openScan = () => {
//获取Android意图类
let Intent = plus.android.importClass("android.content.Intent");
//实例化意图
let intent = new Intent();
//定义意图,由厂商提供
intent.setAction("com.rfid.SCAN_CMD");
//广播这个意图
main.sendBroadcast(intent);
};
export const scanCode = async () => {
uni.showLoading({ title: "扫描中", mask: true });
const getCode = () => {
return new Promise((resolve) => {
scanCallback = (code) => {
resolve(code);
};
});
};
openScan();
const res = await Promise.race([getCode(), sleep(timeout)]);
scanCallback = null;
uni.hideLoading();
if (!res) {
uni.showToast({
icon: "none",
title: "扫描失败",
});
throw new Error("扫描失败");
}
return res;
};
export const addSubscription = (callback) => {
if (callback) {
subscriptions.push(callback);
}
};
export const removeSubscription = (callback) => {
const index = subscriptions.findIndex((v) => v === callback);
if (index > -1) {
subscriptions.splice(index, 1);
}
};
// @/mixins/scan.js
import { addSubscription, removeSubscription } from "@/utils/scan";
export default {
data() {},
onShow() {
if (this.onReceiveCode) {
addSubscription(this.onReceiveCode);
}
},
onHide() {
if (this.onReceiveCode) {
removeSubscription(this.onReceiveCode);
}
},
beforeDestroy() {
if (this.onReceiveCode) {
removeSubscription(this.onReceiveCode);
}
},
};
pda我这里调用action:com.rfid.SCAN_CMD,获取action:com.rfid.SCAN, 根据自己手里的pda去设置,可以联系厂家售后
需在pda扫码软件中将模式改为广播
<template>
<view>
<view v-for="(item, index) in list" :key="index"> {{ item }} </view>
<button @click="scan">扫描</button>
</view>
</template>
<script>
import { scanCode } from "@/utils/scan";
import scan from "@/mixins/scan";
export default {
mixins: [scan],
data() {
return {
list: [],
};
},
methods: {
async scan() {
const code = await scanCode();
console.log("手动扫描", code);
this.list.unshift("手动扫描" + code);
},
onReceiveCode(code) {
console.log("页面监听", code);
this.list.unshift("页面监听" + code);
},
},
};
</script>
//app.vue
<script>
import { registerReceiver } from "@/utils/scan";
export default {
onLaunch() {
registerReceiver();
}
};
</script>
</style>
// @/utils/scan.js
const timeout = 5 * 1000; //扫码超时时间
const main = plus.android.runtimeMainActivity();
// 全局只允许一个地方获取,存储最新的回调函数,获取完立即销毁
let scanCallback = null;
//存储订阅,每个页面可以单独订阅,优先级低于scanCallback
const subscriptions = [];
export const byteArrayToString = (array) => {
return String.fromCharCode.apply(String, array);
};
const sleep = (ms) => {
return new Promise((resolve) => setTimeout(resolve, ms));
};
export const registerReceiver = () => {
//获取Android意图过滤类
const IntentFilter = plus.android.importClass("android.content.IntentFilter");
//实例化意图过滤
const filter = new IntentFilter();
//获取扫码成功的意图广播,
filter.addAction("com.rfid.SCAN");
const receiver = plus.android.implements(
"io.dcloud.feature.internal.reflect.BroadcastReceiver",
{
onReceive: function (context, intent) {
plus.android.importClass(intent);
// key 为 厂商提供,需要自己联系厂商获取 ,有的厂商使用getStringExtra就直接可以
const dataByte = intent.getByteArrayExtra("data");
const code = byteArrayToString(dataByte);
console.log("receiver:" + code);
if (scanCallback) {
scanCallback(code);
} else {
subscriptions.forEach((cb) => cb(code));
}
},
}
);
main.registerReceiver(receiver, filter);
};
export const openScan = () => {
//获取Android意图类
let Intent = plus.android.importClass("android.content.Intent");
//实例化意图
let intent = new Intent();
//定义意图,由厂商提供
intent.setAction("com.rfid.SCAN_CMD");
//广播这个意图
main.sendBroadcast(intent);
};
export const scanCode = async () => {
uni.showLoading({ title: "扫描中", mask: true });
const getCode = () => {
return new Promise((resolve) => {
scanCallback = (code) => {
resolve(code);
};
});
};
openScan();
const res = await Promise.race([getCode(), sleep(timeout)]);
scanCallback = null;
uni.hideLoading();
if (!res) {
uni.showToast({
icon: "none",
title: "扫描失败",
});
throw new Error("扫描失败");
}
return res;
};
export const addSubscription = (callback) => {
if (callback) {
subscriptions.push(callback);
}
};
export const removeSubscription = (callback) => {
const index = subscriptions.findIndex((v) => v === callback);
if (index > -1) {
subscriptions.splice(index, 1);
}
};
// @/mixins/scan.js
import { addSubscription, removeSubscription } from "@/utils/scan";
export default {
data() {},
onShow() {
if (this.onReceiveCode) {
addSubscription(this.onReceiveCode);
}
},
onHide() {
if (this.onReceiveCode) {
removeSubscription(this.onReceiveCode);
}
},
beforeDestroy() {
if (this.onReceiveCode) {
removeSubscription(this.onReceiveCode);
}
},
};
收起阅读 »

国产服务器软件有什么推荐的,性能是否可以?
随着国产服务器操作系统的代替,越来越多企业和单位的计算机服务器操作系统更换成了国产服务器操作系统,这里面 uos Server、欧拉、麒麟等一批操作优秀的国产服务器操作系统崛起。在我们寻常生活中的每一个影藏角落内为我们提供着良好的互联网服务。
作为服务器操作系统的使用设计,网络服务成为了服务器操作系统需要实现的仅次于内核的最重要功能就是网络服务。
其中 nginx、apache 等广泛的运用在我们的各个服务器操作系统上面,这些都是国外的,难道就没有国产的高性能 HTTP 服务器么?
这个答案当然是否定的,我们也有国产服务器软件,其中这里面我比较推荐的是 LinWin Http Server。
新起之秀 LinWin Http Server
作为衡量服务器性能的重要指标就是性能,目前该 HTTP 服务器软件还在不断优化,不过经过模拟用户测试最大可以达到瞬间接受超过万次的服务器请求,而且不会对服务器造成过多的压力,平稳运行。不仅仅性能 OK,而且内置了安全选项,而且默认打开,包括了敏感资源访问防护、SQL 注入防护、XSS 防护、恶意 URL 防护。基本上在面对一般网站方面的基础防护还是比较到位的。
LInWIn Http 主要适配于国产操作系统和 Linux,对国产系统的支持是最好的,而且部署方便快捷,一个安装程序,轻松安装。
居然支持反向代理,没错,LinWIn Http 确实支持反向代理,从本地端口访问其他网站,而且默认在 10145 端口开启。
方便的前端网站跨域问题:在 Web 前端开发中,经常会碰到需要跨域访问,这个时候,只需要在服务器目录下新建一个 strict_origin_when_cross_origin.txt 在文件第一行写入你要跨域的网站,然后你就可以在前端页面任意跨域了,其他的全都交由服务器处理。
该项目地址 (下载、说明): https://github.com/LinWin-Cloud/linwin-http-server
项目参与开发地址: https://gitee.com/LinWin-Cloud/linwin-http-server
项目网站:https://linwin-cloud.github.io/linwin-http-server/
随着国产服务器操作系统的代替,越来越多企业和单位的计算机服务器操作系统更换成了国产服务器操作系统,这里面 uos Server、欧拉、麒麟等一批操作优秀的国产服务器操作系统崛起。在我们寻常生活中的每一个影藏角落内为我们提供着良好的互联网服务。
作为服务器操作系统的使用设计,网络服务成为了服务器操作系统需要实现的仅次于内核的最重要功能就是网络服务。
其中 nginx、apache 等广泛的运用在我们的各个服务器操作系统上面,这些都是国外的,难道就没有国产的高性能 HTTP 服务器么?
这个答案当然是否定的,我们也有国产服务器软件,其中这里面我比较推荐的是 LinWin Http Server。
新起之秀 LinWin Http Server
作为衡量服务器性能的重要指标就是性能,目前该 HTTP 服务器软件还在不断优化,不过经过模拟用户测试最大可以达到瞬间接受超过万次的服务器请求,而且不会对服务器造成过多的压力,平稳运行。不仅仅性能 OK,而且内置了安全选项,而且默认打开,包括了敏感资源访问防护、SQL 注入防护、XSS 防护、恶意 URL 防护。基本上在面对一般网站方面的基础防护还是比较到位的。
LInWIn Http 主要适配于国产操作系统和 Linux,对国产系统的支持是最好的,而且部署方便快捷,一个安装程序,轻松安装。
居然支持反向代理,没错,LinWIn Http 确实支持反向代理,从本地端口访问其他网站,而且默认在 10145 端口开启。
方便的前端网站跨域问题:在 Web 前端开发中,经常会碰到需要跨域访问,这个时候,只需要在服务器目录下新建一个 strict_origin_when_cross_origin.txt 在文件第一行写入你要跨域的网站,然后你就可以在前端页面任意跨域了,其他的全都交由服务器处理。
该项目地址 (下载、说明): https://github.com/LinWin-Cloud/linwin-http-server
项目参与开发地址: https://gitee.com/LinWin-Cloud/linwin-http-server
项目网站:https://linwin-cloud.github.io/linwin-http-server/
收起阅读 »
算命源码易支付
易经是一种古老的占卜文本。它包括一种生成 1 到 64 之间的随机数的方法,以及对每个结果配置的“含义”的简要描述。还有一些特定的规则,以便您可以使用实际的 1-64 结果作为当前情况的描述符,并从中获取第二个值(同样是 1-64,但保证永远不会得到相同的值)这代表了情况将如何演变。因为它通过它的64卦描述了所有可能的生活经历的根源,所以《易经》本身就包含了所有可能的故事和人的境遇。受到《易经》的启发,发现了二进制数。对我来说,用二进制数字带回易经似乎是一个很好的练习。
源码:m.appwin.top
下载并安装算命源码
以下是安装算命源码的 3 种方法:
使用 App Player 在安装算命源码
算命源码安装在 Windows 系统中
1. 使用 BlueStacks 在安装算命源码
BlueStacks 是一个 Android 应用程序播放器,可让您在 PC 上运行 Android 应用程序。以下是如何使用 Bluestacks 在 PC 上安装任何应用程序的步骤:
首先,在安装 BlueStacks;
在 PC 上启动 BlueStacks;
启动 BlueStacks 后,单击模拟器中的 My Apps 按钮;
搜索:算命源码;
您将看到算命源码应用程序的搜索结果,只需安装它;
登录您的 Google 帐户以在 Bluestacks 上从 Google Play 下载应用程序;
登录后,将根据您的互联网连接开始安装算命源码。
提示:如果您在使用 BlueStacks 软件时遇到加载问题,只需在您的安装 Microsoft .net Framework 软件。或在您的问题下方评论。
注意:如果您是 Mac 用户,您需要下载Bluestacks for Mac(一个 .dmg 安装文件)。
2. 用 Nox 安装算命源码
请按照以下步骤操作:
在 PC 上安装nox 应用程序播放器
是安卓模拟器,在PC上安装运行Nox,登录谷歌账号
标签搜索器和搜索:算命源码
在您的 Nox 模拟器上安装算命源码
安装完成后,您就可以在电脑上玩易经易经了。
3. 如何安装易经 - Windows易经
要在 Windows中安装算命源码,您需要遵循本教程,您将在其中学习安装适用于 Android 的 Windows 子系统以及如何在 Windows中安装应用商店。
在 Windows中安装应用商店后
运行它,然后登录到您的帐户以连接它
现在,搜索你想安装的应用程序算命源码
就像我们通常在 Android 设备上一样安装它。
manifest.json
{
"dependencies": {
"com.coffee.ui-effect": "https://github.com/mob-sakai/UIEffect.git",
"com.unity.2d.sprite": "1.0.0",
"com.unity.collab-proxy": "1.2.16",
"com.unity.ide.rider": "1.2.1",
"com.unity.ide.visualstudio": "2.0.8",
"com.unity.ide.vscode": "1.2.3",
"com.unity.plasticscm-cn": "1.2.1-preview",
"com.unity.postprocessing": "3.1.0",
"com.unity.recorder": "2.5.5",
"com.unity.test-framework": "1.1.24",
"com.unity.textmeshpro": "2.1.6",
"com.unity.timeline": "1.2.18",
"com.unity.toolchain.win-x86_64-linux-x86_64": "0.1.21-preview",
"com.unity.ugui": "1.0.0",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.assetbundle": "1.0.0",
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.cloth": "1.0.0",
"com.unity.modules.director": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0",
"com.unity.modules.imgui": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0",
"com.unity.modules.physics": "1.0.0",
"com.unity.modules.physics2d": "1.0.0",
"com.unity.modules.screencapture": "1.0.0",
"com.unity.modules.terrain": "1.0.0",
"com.unity.modules.terrainphysics": "1.0.0",
"com.unity.modules.tilemap": "1.0.0",
"com.unity.modules.ui": "1.0.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.umbra": "1.0.0",
"com.unity.modules.unityanalytics": "1.0.0",
"com.unity.modules.unitywebrequest": "1.0.0",
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
"com.unity.modules.unitywebrequestaudio": "1.0.0",
"com.unity.modules.unitywebrequesttexture": "1.0.0",
"com.unity.modules.unitywebrequestwww": "1.0.0",
"com.unity.modules.vehicles": "1.0.0",
"com.unity.modules.video": "1.0.0",
"com.unity.modules.vr": "1.0.0",
"com.unity.modules.wind": "1.0.0",
"com.unity.modules.xr": "1.0.0"
},
"registry": "https://packages-v2.unity.cn/"
}
Footer
如何使用算命源码是一个程序,它会询问您一个问题并逐行随机选择一个卦。算命源码将绘制生成的卦并打印翻译中的描述和行描述
这是一个PHP程序,它不需要任何依赖,必须通过命令行执行
PHP cliching.py
进一步发展
易经中文文本有几种翻译。在这个软件的当前版本中,我使用了百度的翻译。这是我习惯的,我现在正在研究其他版本,我以后可能会实现它。
我想增加浏览所有卦的可能性,而不是直接跳到问问题。
为每次咨询创建一个包含问题和响应的结论性文件。
周易可以追溯到上古时期,伏羲观天地万物变化,得神启,衍八卦,至周文王时发扬光大,推演出六十四卦,所以易经往往被称为周易。至今已有五千余年的历史,可以说周易是伴随华夏文明一同成长起来的。
古今中外,对周易都是推崇备至,即使不用来卜筮,学周易,明义理,也是普遍认可的。这其中往往离不开孔圣人对周易的推广,因为他的贡献,即使那些没有学过周易的人都知道“物极必反”、“否极泰来”的道理,而“天行健,君子以自强不息;地势坤,君子以厚德载物”诸如此类的卦辞、爻辞、象传、彖传,其实早已深入人心,已经成为华夏文明不可分割的重要血缘。
我读周易比较晚,在三十二岁的年纪,先读了金刚经三十二卷,才学习周易六十四卦,似乎冥冥中自有天意,又或者只是机缘巧合。总之这个年龄的阅历,足以支撑学习这些国粹经典。工作之余,学之余,将自己所学用于实践,就有了这个应用。
有人用周易来卜筮,断吉凶,从而指导日常行为;也有人只是用周易的道理来作为行为准则,这些原则就如孔圣所示:乃君子之道。我十分认同圣人先贤的观点,预测未来的吉凶祸福不是最重要的,最重要的在于我们如何在每一个时间点上对可获得信息做出正确的应对。这也是易理所阐明的道理,六爻中每一爻都有其天时、地理、人和,每一爻都有不同信息和应对方式,六爻一起构成了事物演化的规则,而整个卦象又呈现变化的趋势。
我开发这个应用,推崇先明易理,用于卜筮,还是用于指导人生,这都由大家自由去使用。对于易理,除了经典的卦辞、爻辞、象、彖传等阐述外,我想制作更加简明易懂的六格漫画,当然我是一个程序员,对于漫画创作还是一窍不通,希望通过此文抛砖引玉,寻找一些明易理的人创作这些六格漫画,加载到应用中去。
易经是一种古老的占卜文本。它包括一种生成 1 到 64 之间的随机数的方法,以及对每个结果配置的“含义”的简要描述。还有一些特定的规则,以便您可以使用实际的 1-64 结果作为当前情况的描述符,并从中获取第二个值(同样是 1-64,但保证永远不会得到相同的值)这代表了情况将如何演变。因为它通过它的64卦描述了所有可能的生活经历的根源,所以《易经》本身就包含了所有可能的故事和人的境遇。受到《易经》的启发,发现了二进制数。对我来说,用二进制数字带回易经似乎是一个很好的练习。
源码:m.appwin.top
下载并安装算命源码
以下是安装算命源码的 3 种方法:
使用 App Player 在安装算命源码
算命源码安装在 Windows 系统中
1. 使用 BlueStacks 在安装算命源码
BlueStacks 是一个 Android 应用程序播放器,可让您在 PC 上运行 Android 应用程序。以下是如何使用 Bluestacks 在 PC 上安装任何应用程序的步骤:
首先,在安装 BlueStacks;
在 PC 上启动 BlueStacks;
启动 BlueStacks 后,单击模拟器中的 My Apps 按钮;
搜索:算命源码;
您将看到算命源码应用程序的搜索结果,只需安装它;
登录您的 Google 帐户以在 Bluestacks 上从 Google Play 下载应用程序;
登录后,将根据您的互联网连接开始安装算命源码。
提示:如果您在使用 BlueStacks 软件时遇到加载问题,只需在您的安装 Microsoft .net Framework 软件。或在您的问题下方评论。
注意:如果您是 Mac 用户,您需要下载Bluestacks for Mac(一个 .dmg 安装文件)。
2. 用 Nox 安装算命源码
请按照以下步骤操作:
在 PC 上安装nox 应用程序播放器
是安卓模拟器,在PC上安装运行Nox,登录谷歌账号
标签搜索器和搜索:算命源码
在您的 Nox 模拟器上安装算命源码
安装完成后,您就可以在电脑上玩易经易经了。
3. 如何安装易经 - Windows易经
要在 Windows中安装算命源码,您需要遵循本教程,您将在其中学习安装适用于 Android 的 Windows 子系统以及如何在 Windows中安装应用商店。
在 Windows中安装应用商店后
运行它,然后登录到您的帐户以连接它
现在,搜索你想安装的应用程序算命源码
就像我们通常在 Android 设备上一样安装它。
manifest.json
{
"dependencies": {
"com.coffee.ui-effect": "https://github.com/mob-sakai/UIEffect.git",
"com.unity.2d.sprite": "1.0.0",
"com.unity.collab-proxy": "1.2.16",
"com.unity.ide.rider": "1.2.1",
"com.unity.ide.visualstudio": "2.0.8",
"com.unity.ide.vscode": "1.2.3",
"com.unity.plasticscm-cn": "1.2.1-preview",
"com.unity.postprocessing": "3.1.0",
"com.unity.recorder": "2.5.5",
"com.unity.test-framework": "1.1.24",
"com.unity.textmeshpro": "2.1.6",
"com.unity.timeline": "1.2.18",
"com.unity.toolchain.win-x86_64-linux-x86_64": "0.1.21-preview",
"com.unity.ugui": "1.0.0",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.assetbundle": "1.0.0",
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.cloth": "1.0.0",
"com.unity.modules.director": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0",
"com.unity.modules.imgui": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0",
"com.unity.modules.physics": "1.0.0",
"com.unity.modules.physics2d": "1.0.0",
"com.unity.modules.screencapture": "1.0.0",
"com.unity.modules.terrain": "1.0.0",
"com.unity.modules.terrainphysics": "1.0.0",
"com.unity.modules.tilemap": "1.0.0",
"com.unity.modules.ui": "1.0.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.umbra": "1.0.0",
"com.unity.modules.unityanalytics": "1.0.0",
"com.unity.modules.unitywebrequest": "1.0.0",
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
"com.unity.modules.unitywebrequestaudio": "1.0.0",
"com.unity.modules.unitywebrequesttexture": "1.0.0",
"com.unity.modules.unitywebrequestwww": "1.0.0",
"com.unity.modules.vehicles": "1.0.0",
"com.unity.modules.video": "1.0.0",
"com.unity.modules.vr": "1.0.0",
"com.unity.modules.wind": "1.0.0",
"com.unity.modules.xr": "1.0.0"
},
"registry": "https://packages-v2.unity.cn/"
}
Footer
如何使用算命源码是一个程序,它会询问您一个问题并逐行随机选择一个卦。算命源码将绘制生成的卦并打印翻译中的描述和行描述
这是一个PHP程序,它不需要任何依赖,必须通过命令行执行
PHP cliching.py
进一步发展
易经中文文本有几种翻译。在这个软件的当前版本中,我使用了百度的翻译。这是我习惯的,我现在正在研究其他版本,我以后可能会实现它。
我想增加浏览所有卦的可能性,而不是直接跳到问问题。
为每次咨询创建一个包含问题和响应的结论性文件。
周易可以追溯到上古时期,伏羲观天地万物变化,得神启,衍八卦,至周文王时发扬光大,推演出六十四卦,所以易经往往被称为周易。至今已有五千余年的历史,可以说周易是伴随华夏文明一同成长起来的。
古今中外,对周易都是推崇备至,即使不用来卜筮,学周易,明义理,也是普遍认可的。这其中往往离不开孔圣人对周易的推广,因为他的贡献,即使那些没有学过周易的人都知道“物极必反”、“否极泰来”的道理,而“天行健,君子以自强不息;地势坤,君子以厚德载物”诸如此类的卦辞、爻辞、象传、彖传,其实早已深入人心,已经成为华夏文明不可分割的重要血缘。
我读周易比较晚,在三十二岁的年纪,先读了金刚经三十二卷,才学习周易六十四卦,似乎冥冥中自有天意,又或者只是机缘巧合。总之这个年龄的阅历,足以支撑学习这些国粹经典。工作之余,学之余,将自己所学用于实践,就有了这个应用。
有人用周易来卜筮,断吉凶,从而指导日常行为;也有人只是用周易的道理来作为行为准则,这些原则就如孔圣所示:乃君子之道。我十分认同圣人先贤的观点,预测未来的吉凶祸福不是最重要的,最重要的在于我们如何在每一个时间点上对可获得信息做出正确的应对。这也是易理所阐明的道理,六爻中每一爻都有其天时、地理、人和,每一爻都有不同信息和应对方式,六爻一起构成了事物演化的规则,而整个卦象又呈现变化的趋势。
我开发这个应用,推崇先明易理,用于卜筮,还是用于指导人生,这都由大家自由去使用。对于易理,除了经典的卦辞、爻辞、象、彖传等阐述外,我想制作更加简明易懂的六格漫画,当然我是一个程序员,对于漫画创作还是一窍不通,希望通过此文抛砖引玉,寻找一些明易理的人创作这些六格漫画,加载到应用中去。

appstore connect 上传ipa后TestFlight中有,却无法构建版本的问题 - - 解决方案(不一定是最优解)
先说明一下适用情况
1.项目已经审核过三次都没过,app审核处有记录,可以点击“解决”,进入详情页
2.新传上去的ipa应用包版本 可以在TestFlight中找到
解决方法:
找到app审核记录详情页中 ”已提交项目“标题处(类似于附件图3)
鼠标悬停在 项目下方 xxx1.0(100) 上 ,水平方向右侧 会出现红色移除按钮”⛔ “,点击移除。
(附件图3是已移除后我模拟未移除情况改的图,后续有机会再更新成真实情况的实图)
移除完成后,就可以构建版本了,而且老版本的审核记录还在(如附件图1)。
附件图1:
附件图2:
附件图3:
先说明一下适用情况
1.项目已经审核过三次都没过,app审核处有记录,可以点击“解决”,进入详情页
2.新传上去的ipa应用包版本 可以在TestFlight中找到
解决方法:
找到app审核记录详情页中 ”已提交项目“标题处(类似于附件图3)
鼠标悬停在 项目下方 xxx1.0(100) 上 ,水平方向右侧 会出现红色移除按钮”⛔ “,点击移除。
(附件图3是已移除后我模拟未移除情况改的图,后续有机会再更新成真实情况的实图)
移除完成后,就可以构建版本了,而且老版本的审核记录还在(如附件图1)。
附件图1:
附件图2:
附件图3:

我开发答题刷题教育类知识付费小程序的一些总结与见解
如今大家对手机的依赖越来越大,人们的学习方式也发生了很大的变化,人们习惯了利用碎片时间进行学习,优化自己的学习时间。
因此,微信小程序也成了大家闲暇时间掌上刷题的一种途径。
5月份开始,大家一致建议我搞答题小程序,一开始对这个项目没有什么信心,因此开始学习云开发,后来发现微信云开发还挺简单,于是就上瘾了。
几个月下来,基本上完成了一个不错的教育类知识付费答题刷题小程序,功能主要有答题刷题,模拟考试,文章博客,日记圈子,排行榜,错题本,搜题,课程,倒计时,打卡订阅等几十项功能,并融合了微信流量主banner广告,插屏广告,激励广告等全部通过后台设置。还可以链接微信公众号文章,视频号,小商店等,总之功能很多,这里就不一一列举,感兴趣的可以自行去测试。
本人不善言谈,不善总结,不知道怎么给大家说,反正就是感觉云开发很简单,之后准备学习一下uniapp,往多端发展,做抖音小程序等。
下面是我做的小程序的二维码,如果有任何建议或者意见都可以加我微信H6220073一起学习探讨,一起成长哦。
如今大家对手机的依赖越来越大,人们的学习方式也发生了很大的变化,人们习惯了利用碎片时间进行学习,优化自己的学习时间。
因此,微信小程序也成了大家闲暇时间掌上刷题的一种途径。
5月份开始,大家一致建议我搞答题小程序,一开始对这个项目没有什么信心,因此开始学习云开发,后来发现微信云开发还挺简单,于是就上瘾了。
几个月下来,基本上完成了一个不错的教育类知识付费答题刷题小程序,功能主要有答题刷题,模拟考试,文章博客,日记圈子,排行榜,错题本,搜题,课程,倒计时,打卡订阅等几十项功能,并融合了微信流量主banner广告,插屏广告,激励广告等全部通过后台设置。还可以链接微信公众号文章,视频号,小商店等,总之功能很多,这里就不一一列举,感兴趣的可以自行去测试。
本人不善言谈,不善总结,不知道怎么给大家说,反正就是感觉云开发很简单,之后准备学习一下uniapp,往多端发展,做抖音小程序等。
下面是我做的小程序的二维码,如果有任何建议或者意见都可以加我微信H6220073一起学习探讨,一起成长哦。

如何优雅的使用小程序蓝牙通信 ……
问自己三个问题
1、蓝牙授权拿到了吗?
2、蓝牙模块启用了吗?
3、流程是从获取蓝牙模块状态发起的吗? (如果不是,想办法在前面流程中关闭蓝牙模块,并确保业务流程从启动蓝牙模块开始 … 后面所有流程都跑一遍,IOS是的)
const target = {
deviceId: null,
serviceId: null,
characteristicId: null,
notifyId: null,
}
// 获取蓝牙模块授权 ,这里存在已授权和已拒绝、未授权等情况,自己封装下 helperHandle.wxPreAuthorize
const initKitBluetooth = (force = false) => {
return new Promise((resolve, reject) => {
helperHandle
.wxPreAuthorize({
scope: 'scope.bluetooth',
scopeNamed: '蓝牙',
force,
})
.then(() => {
// 启动蓝牙
uni.openBluetoothAdapter({
success: async () => {
await store.dispatch('app/setBluetoothAdapterState', 2)
resolve()
},
fail: async (res) => {
let message = res.errMsg || ''
if (res.errCode === 10001) {
await store.dispatch('app/setBluetoothAdapterState', 1)
message = '请打开手机蓝牙'
} else {
await store.dispatch('app/setBluetoothAdapterState', 0)
}
reject(message)
},
})
})
.catch((reason) => {
reject(reason)
})
})
}
const linkBLEWithWrite = ({ deviceId, value = 'GET', onListen = null } = {}) => {
return new Promise((resolve, reject) => {
console.log('准备开始连接设备:' + deviceId)
createBLEConnection(deviceId)
.then(() => {
console.log('设备已连接')
target.deviceId = deviceId
// 设备已连接 # 获取服务
return getBLEDeviceServices(deviceId)
})
.then((services) => {
console.log('已获取到设备服务', services)
// 根据服务 # 获取特征值
const serviceId = services[0].uuid
target.serviceId = serviceId
return getBLEDeviceCharacteristics({
deviceId,
serviceId,
})
})
.then(async (characteristics) => {
console.log('已获取到特征值', characteristics)
// 根据特征值进行通信
// 订阅消息的特征值UUID
const notifyId = characteristics[0].uuid
target.notifyId = notifyId
// 发送指令的特征值UUID
const characteristicId = characteristics[1].uuid
target.characteristicId = characteristicId
// 判断是否订阅消息通知
if (onListen) {
console.log('开始侦听设备广播', target)
await notifyBLECharacteristicValueChange(target)
console.log('侦听已启动')
// 订阅回调
onBLECharacteristicValueChange(onListen)
}
return Promise.resolve()
})
.then(async () => {
console.log('开始向设备写入信息:' + value)
// 根据情景 # 向设备写入数据
await writeBLECharacteristicValue({
value,
deviceId: target.deviceId,
serviceId: target.serviceId,
characteristicId: target.characteristicId,
})
})
.then(() => {
console.log('已写入')
resolve()
})
.catch((reason) => {
reject(reason)
})
})
}
const clearBLEServices = (deviceId) => {
return new Promise((resolve) => {
closeBLEConnection(deviceId)
.then(() => {
console.log('连接已关闭')
return closeBluetoothAdapter()
})
.then(async () => {
await store.dispatch('app/setBluetoothAdapterState', 0)
console.log('蓝牙已关闭')
resolve()
})
})
}
问自己三个问题
1、蓝牙授权拿到了吗?
2、蓝牙模块启用了吗?
3、流程是从获取蓝牙模块状态发起的吗? (如果不是,想办法在前面流程中关闭蓝牙模块,并确保业务流程从启动蓝牙模块开始 … 后面所有流程都跑一遍,IOS是的)
const target = {
deviceId: null,
serviceId: null,
characteristicId: null,
notifyId: null,
}
// 获取蓝牙模块授权 ,这里存在已授权和已拒绝、未授权等情况,自己封装下 helperHandle.wxPreAuthorize
const initKitBluetooth = (force = false) => {
return new Promise((resolve, reject) => {
helperHandle
.wxPreAuthorize({
scope: 'scope.bluetooth',
scopeNamed: '蓝牙',
force,
})
.then(() => {
// 启动蓝牙
uni.openBluetoothAdapter({
success: async () => {
await store.dispatch('app/setBluetoothAdapterState', 2)
resolve()
},
fail: async (res) => {
let message = res.errMsg || ''
if (res.errCode === 10001) {
await store.dispatch('app/setBluetoothAdapterState', 1)
message = '请打开手机蓝牙'
} else {
await store.dispatch('app/setBluetoothAdapterState', 0)
}
reject(message)
},
})
})
.catch((reason) => {
reject(reason)
})
})
}
const linkBLEWithWrite = ({ deviceId, value = 'GET', onListen = null } = {}) => {
return new Promise((resolve, reject) => {
console.log('准备开始连接设备:' + deviceId)
createBLEConnection(deviceId)
.then(() => {
console.log('设备已连接')
target.deviceId = deviceId
// 设备已连接 # 获取服务
return getBLEDeviceServices(deviceId)
})
.then((services) => {
console.log('已获取到设备服务', services)
// 根据服务 # 获取特征值
const serviceId = services[0].uuid
target.serviceId = serviceId
return getBLEDeviceCharacteristics({
deviceId,
serviceId,
})
})
.then(async (characteristics) => {
console.log('已获取到特征值', characteristics)
// 根据特征值进行通信
// 订阅消息的特征值UUID
const notifyId = characteristics[0].uuid
target.notifyId = notifyId
// 发送指令的特征值UUID
const characteristicId = characteristics[1].uuid
target.characteristicId = characteristicId
// 判断是否订阅消息通知
if (onListen) {
console.log('开始侦听设备广播', target)
await notifyBLECharacteristicValueChange(target)
console.log('侦听已启动')
// 订阅回调
onBLECharacteristicValueChange(onListen)
}
return Promise.resolve()
})
.then(async () => {
console.log('开始向设备写入信息:' + value)
// 根据情景 # 向设备写入数据
await writeBLECharacteristicValue({
value,
deviceId: target.deviceId,
serviceId: target.serviceId,
characteristicId: target.characteristicId,
})
})
.then(() => {
console.log('已写入')
resolve()
})
.catch((reason) => {
reject(reason)
})
})
}
const clearBLEServices = (deviceId) => {
return new Promise((resolve) => {
closeBLEConnection(deviceId)
.then(() => {
console.log('连接已关闭')
return closeBluetoothAdapter()
})
.then(async () => {
await store.dispatch('app/setBluetoothAdapterState', 0)
console.log('蓝牙已关闭')
resolve()
})
})
}
收起阅读 »