New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

my-karas

Package Overview
Dependencies
Maintainers
2
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

my-karas

A karas runtime on Alipay.

latest
Source
npmnpm
Version
0.72.3
Version published
Maintainers
2
Created
Source

my-karas

A karas runtime on Alipay.

NPM version

INSTALL

npm install karas
npm install my-karas

小程序目前有升级canvas2.0,以及native canvas1.0,所以出现了3种api,2.0新版支持离屏功能,老版默认不行。新版在sdk2.7.0及以上支持。

Demo

// 老版
import karas from 'my-karas';

Page({
  onLoad() {
    my.createSelectorQuery()
      .select('#canvas')
      .boundingClientRect()
      .exec(res => {
        if (!res || !res.length || !res[0]) {
          return;
        }
        const { width, height } = res[0];
        const pixelRatio = my.getSystemInfoSync().pixelRatio;
        const w = width * pixelRatio;
        const h = height * pixelRatio;
        this.setData({
          width: w,
          height: h,
        }, () => {
          const ctx = my.createCanvasContext('canvas');
          // 上面都是小程序固有的,因环境问题不得不如此,下面真正内容和h5基本一致
          karas.parse({
            tagName: 'canvas',
            props: {
              width: w,
              height: h,
            },
            children: [
              json, // ui制作的数据,这里和h5一样
            ],
          }, ctx);
        });
      });
  },
});
// 新版2.0
import karas, { setCanvasType } from 'my-karas';
// 版本api不一致,所以要多调用一次
setCanvasType('canvas2');

let root;

Page({
  onLoad() {
    my.createSelectorQuery()
      .select('#canvas')
      .node()
      .exec(res => {
        const canvas = res[0].node;
        root = karas.parse(
          {
            tagName: 'canvas',
            props: {
              width: 360,
              height: 360,
            },
            children: [
              'Hello world'
            ]
          },
          canvas
        );
      });
  },
  onUnload() {
    // 2.0销毁记得手动调用destroy()
    root && root.destroy();
  }
});
// 1.0native
import karas, { setCanvasType } from 'my-karas';
// 版本api不一致,所以要多调用一次
setCanvasType('canvas1n');

Page({
  onLoad() {
    my.createSelectorQuery()
      .select('#canvas')
      .node()
      .exec(res => {
        const canvas = res[0].node;
        root = karas.parse(
          {
            tagName: 'canvas',
            props: {
              width: 360,
              height: 360,
            },
            children: [
              'Hello world'
            ]
          },
          canvas
        );
      });
  }
});

FAQs

Package last updated on 10 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts