10行代码将博客网站中的live2D搬到桌面去

将博客网站中的live2D搬到桌面去!

前言:最近玩了一下Electron,Electron可以非常方便地使用原来的前端三剑客实现桌面应用的开发,然后就想着桌面插件是不是也是可以的?如果可以的话,那桌面精灵是不是也是可以的呢?以前有看到大佬用c#开发过桌面精灵,现在看通过electron,能不能把博客页面中的二次元小姐姐搬到桌面来。

第一步:创建一个electron项目

electron项目的环境搭建在这里就不过多赘述了(包括node、npm以及electron包的安装在网上有非常多教程,这里也贴一下electron的官网方文档地址 ),项目的创建非常简单,创建好一个文件夹后,进入该文件夹,在命令行下输入下面的代码即可生成一个package.json文件,这是electron 项目的默认配置文件。

npm init --yes

第二步:创建js主脚本文件

const { app, BrowserWindow } = require('electron')

function createWindow () {
  const win = new BrowserWindow({
    width: 600,
    height: 800,
    frame: false,
    transparent: true, //设置透明
    webPreferences: {
      devTools: false,
      nodeIntegration: true
    }
  })

  win.loadFile('test.html') //加载的html文件
}

app.whenReady().then(createWindow)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})

在这里可以指定创建的窗口的宽高,除此之外,我还指定了一些其他的参数——frame:false , transparent:true 这些设置是为了隐藏窗口以及使背景透明化,这样,才算得上是我们的桌面精灵嘛,要不然的话,看到的就是桌面精灵在一个程序框框内。

第三步:创建html文件渲染我们的页面

在上一步中,通过win.loadFile('test.html')指定了我们的html文件,这里现在就可以来编写我们的代码了:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
     <meta http-equiv="Content-Security-Policy" content="script-src 'self' https://eqcn.ajz.miesnfu.com 'unsafe-inline';" />
</head>
<body style="-webkit-app-region: drag;">
 <div style="font-weight: bold;color: red;text-align: center;margin-top: 100px;" class=“icon-drag”></div>
 <script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js"></script> 
 <script>
   L2Dwidget.init({ 
   "model": {jsonPath:"https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json","scale": 1 }, 
   "display": { "position": "top", "width": 150, "height": 300,"hOffset": 0, "vOffset": -20 }, 
   "mobile": { "show": true, "scale": 0.5 }, 
   "react": { "opacityDefault": 0.7, "opacityOnHover": 0.2 } });
 </script>
</body>
</html>


看到其中的js代码有没有很熟悉?应该是有不少朋友在博客园中引用的js也是类似这样的吧,直接复制过来就完成了。

在这里唯一需要注意的一点是,在上面的meta标签中,需要设置一下script-src,script-src是一个指导,控制着代码特殊页面域代码相关的权限, 默认情况下只指定了‘self’ 作为一个有效的代码来源,所以这里需要将引用的js也写进来,不然的话,我之前就报了下面这里的错误,没办法加载进来:

最后附上一张效果图

效果图

结语

这里还有更多的可以扩展的地方,像可以添加一些互动的操作菜单,实现一个更加丰富的桌面小精灵。当然原有的live2d插件也有一些接口,可以实现更加复杂的功能,都可以移植过来,和在网页上基本上是没有什么区别的。文章就写到这里了,感谢赏脸阅读!

posted @ 2020-12-22 13:05  Le先生  阅读(618)  评论(0编辑  收藏  举报