11月
02
判断手机上是否安装了常用的 app 是一个很必要的功能。比如你 ios 端,想做微信登录功能,就得先判断手机是否安装了微信。因为如果你不判断,直接显示微信按钮,如果用户手机根本没装微信,app 上架就会不成功。
https://ask.dcloud.net.cn/article/35621
https://ask.dcloud.net.cn/article/39182
调用 api
let pinfo = {
pname: 'com.tencent.mm',
action: 'weixin://'
}
let hasWeixin = plus.runtime.isApplicationExist(pinfo);
console.log(hasWeixin)
通过 URLscheme 信息,通过 plus.runtime.isApplicationExist 来判断。
常用的 app URLscheme信息
平台 |
pname |
action |
微信 |
com.tencent.mm |
weixin:// |
QQ |
com.tencent.mobileqq |
mqq:// |
微博 |
com.sina.weibo |
sinaweibo:// |
淘宝 |
com.taobao.taobao |
taobao:// |
支付宝 |
com.eg.android.AlipayGphone |
alipay:// |
京东 |
com.jingdong.app.mall |
openApp.jdMobile:// |
高德地图 |
com.autonavi.minimap |
iosamap:// |
百度地图 |
com.baidu.BaiduMap |
baidumap:// |
优酷 |
com.youku.phone |
youku:// |
拼多多 |
com.xunmeng.pinduoduo |
pinduoduo:// |
小区宝 |
pro.xiangrong.xiaoqubao |
xiaoqubao:// |
哈哈,当然我们小区宝也有
拼多多 URLscheme
额外
# app 系统
let osName = plus.os.name;
console.log(osName);
# 系统名字 Android,iOS
自己的 app 设置 URLscheme
IOS 配置方法
Android 配置方法
https://uniapp.dcloud.net.cn/tutorial/app-ios-schemes.html#
10月
24
app 中能直接打开小程序也是一个很好的体验。那么怎么搞呢。 uniapp 混编的是这样弄的。
参考资料
https://uniapp.dcloud.net.cn/api/other/open-miniprogram.html#navigatetominiprogram
https://www.html5plus.org/doc/zh_cn/share.html#plus.share.ShareService.launchMiniProgram
操作
先通过 getService 拿到 weixin,再调用 launchMiniProgram 方法。
// #ifdef APP-PLUS
plus.share.getServices((res) => {
let weixin = res.find(i => i.id === 'weixin');
if (weixin) {
weixin.launchMiniProgram({
id: 'gh_b8e08725bcda',
path: 'pages/meet/index',
type: 0
}, (res) => {
}, (err) => {
});
}
}, (err) => {
console.log("获取分享服务列表失败: " + JSON.stringify(e));
});
// #endif
注意点:
- 先从 getServices 里找到 weixin。
- launchMiniProgram 第一个参数(options)的 id 是小程序的原始id,不是 appid。
10月
20
安装 jdk
打开 item2(反正比默认终端好用),输入下边的命令,回车看看
/usr/libexec/java_home -V
我的电脑会出现:
Matching Java Virtual Machines (2):
18.0.1 (x86_64) "Oracle Corporation" - "Java SE 18.0.1" /Library/Java/JavaVirtualMachines/jdk-18.0.1.jdk/Contents/Home
17.0.1 (x86_64) "Oracle Corporation" - "Java SE 17.0.1" /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-18.0.1.jdk/Contents/Home
如果没有这个,需要先安装 jdk。 可以去这里 https://www.oracle.com/java/technologies/downloads/ 下载安装
生证书
sudo keytool -genkey -alias xiaoqubao -keyalg RSA -keysize 2048 -validity 36500 -keystore xiaoqubao.keystore
-alias xiaoqubao xiaoqubao 是别名,因为我的 app,叫小区宝,就搞了这个名字
-keystore xiaoqubao.keystore xiaoqubao.keystore 是生成签名证书文件的名字
回车,输入电脑的密码,然后一系列操作输入证书的密码,姓名,企业名字,等这些。最后输入是,回车。证书就生好了。
看证书
keytool -list -v -keystore xiaoqubao.keystore
输入以上命令,回车。输入证书密码,就可以看见证书的信息了。如下所示:
密钥库类型: PKCS12
密钥库提供方: SUN
您的密钥库包含 1 个条目
别名: xiaoqubao
创建日期: 2022年10月20日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=zhoulin, OU=xiangrong, O=xiangrong, L=shanghai, ST=shanghai, C=china
发布者: CN=zhoulin, OU=xiangrong, O=xiangrong, L=shanghai, ST=shanghai, C=china
序列号: e4f7ee369f21453d
生效时间: Thu Oct 20 18:41:29 CST 2022, 失效时间: Sat Sep 26 18:41:29 CST 2122
证书指纹:
SHA1: 13:00:A8:4A:11:96:1F:30:78:1A:72:32:0E:7E:AC:4F:C4:64:9C:AC
SHA256: E3:EC:BA:4F:24:04:A6:28:B3:EB:BC:46:53:75:73:AC:7F:F3:7D:8C:01:DC:74:10:E2:50:A5:3C:6B:B5:D7:48
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 8A 89 19 CF BA E8 6D 36 46 74 15 D9 A1 FF CF C9 ......m6Ft......
0010: 4A 5C AA 30 J\.0
]
]
10月
19
APP 偏多,记录记录申请的证书时间
2022-10-19 类型 Apple Development xr
2022-10-19 类型 Apple Distribution !xr
Id 申请记录
2020-08-18 pro.xiangrong.wallet
2021-02-01 pro.xiangrong.yuepaibao
2022-10-18 pro.xiangrong.xiaoqubao
profiles
2022-10-19 xiaoqubao/yuepaibao
9月
30
使用 laravel 开发项目的时候, artisan 是个好东西。这个好东西是真的好。在做 command 的时候,您可以方便的输出想要的内容在终端上,比如警告,错误,选择等等。这是因为 command 它继承了Command 类,该类使用了 trait Illuminate\Console\Concerns\InteractsWithIO。而它最终实现了 Symfony\Component\Console\Output\OutputInterface 。 Symfony\Component\Console\Output\ConsoleOutput 是 cli output 的源头类。 只要我们做好 Symfony\Component\Console\Output\ConsoleOutput 的文章,不也可以输出吗。
ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR.
来 123, 跟着步骤走起来
# 先生成一个 seeder
php artisan make:seeder TestSeeder
# 在该 seeder 的 run 函数中加入以下代码
public function run()
{
$output = new \Symfony\Component\Console\Output\ConsoleOutput();
$section = $output->section();
$section->writeln('人生若只如初见,何事秋风悲画扇');
}
# 那么开始测试一下
php artisan db:seed --class=TestSeeder
是不是就可以看见你想看见的东东了。当然你可以封装,搞出更多花样。也还有更多命令待使用。
8月
31
做项目的时候,我们经常会用到 index.vue。咋回事呢。行为习惯爱好。比如有这么一个文件 views/home/index.vue
, views 是视图根目录,home 是主页目录,index.vue 我习惯性作为目录的首个文件。由于 cli-plugin-eslint 的作用,这样是不行的。得用驼峰或-方式来命名。这样单个字母就不好搞了。不好搞也要搞,不能妥协。
干
在项目根目录,添加 .eslintrc.js 文件。如果已经有了就修改。主要改成下边这个样子。
// .eslintrc.js
module.exports = {
root: true,
env: {
node: true,
},
extends: [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
parserOptions: {
ecmaVersion: 2020,
},
rules: {
"vue/multi-word-component-names": [
"error",
{
ignores: ["index"], //需要忽略的组件名
},
],
},
};
然后重新启动就好了。
读读
https://vue3js.cn/es6/
8月
31
git 默认的 log 时间格式不好看,设置一下,转换成中国人方便看的格式。
默认格式: Date: Wed Aug 31 01:46:33 2022 +0000
//修改当前仓库log date格式
git config log.date iso-strict-local
//全局设置log date格式
git config --global log.date iso-strict-local
# 修改之后的日历格式:
# Date: 2018-08-23T17:16:39+08:00
# 或者这样
git config --global log.date format:'%Y-%m-%d %H:%M:%S'
# Date: 2021-08-27 15:38:56