字数统计 Cordova 与 OpenHarmony 混合开发实战

📌 模块概述

字数统计功能统计笔记的字数,并显示字数排行榜。用户可以看到哪些笔记字数最多,了解自己的写作量。

🔗 完整流程

第一步:计算字数

计算每个笔记的字数。

第二步:排序

按字数从多到少排序。

第三步:显示排行

显示字数排行榜。

🔧 Web代码实现

javascript 复制代码
async renderWordCount() {
  const allNotes = await noteDB.getAllNotes();
  const sortedNotes = allNotes.sort((a, b) => (b.wordCount || 0) - (a.wordCount || 0));

  return `
    <div class="page active">
      <div class="page-header">
        <h1 class="page-title">📊 字数统计</h1>
      </div>
      <div class="word-count-list">
        ${sortedNotes.map((note, index) => `
          <div class="word-count-item">
            <span class="rank">#${index + 1}</span>
            <span class="title">${Utils.escapeHtml(note.title)}</span>
            <span class="count">${note.wordCount || 0} 字</span>
          </div>
        `).join('')}
      </div>
    </div>
  `;
}

🔌 OpenHarmony 原生代码

typescript 复制代码
// WordCountPlugin.ets - 字数统计插件
import { webview } from '@kit.ArkWeb';
import { common } from '@kit.AbilityKit';
import { fileIo } from '@kit.CoreFileKit';

@NativeComponent
export class WordCountPlugin {
  private context: common.UIAbilityContext;

  constructor(context: common.UIAbilityContext) {
    this.context = context;
  }

  // 初始化插件
  public init(webviewController: webview.WebviewController): void {
    webviewController.registerJavaScriptProxy(
      new WordCountJSProxy(this),
      'wordCountPlugin',
      ['getWordCountRanking']
    );
  }

  // 获取字数排行
  public getWordCountRanking(): Promise<Array<any>> {
    return new Promise((resolve) => {
      try {
        const notesPath = this.context.cacheDir + '/notes.json';
        const content = fileIo.readTextSync(notesPath);
        const notes = JSON.parse(content);
        
        const ranking = notes.sort((a: any, b: any) => (b.wordCount || 0) - (a.wordCount || 0));
        resolve(ranking);
      } catch (error) {
        console.error('Failed to get word count ranking:', error);
        resolve([]);
      }
    });
  }
}

// WordCountJSProxy.ets - JavaScript代理类
class WordCountJSProxy {
  private plugin: WordCountPlugin;

  constructor(plugin: WordCountPlugin) {
    this.plugin = plugin;
  }

  getWordCountRanking(): void {
    this.plugin.getWordCountRanking().then(ranking => {
      console.log('Word count ranking:', ranking.length);
    });
  }
}

📝 总结

字数统计功能展示了如何在Cordova与OpenHarmony混合开发中实现简单的数据排序和展示。

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

相关推荐
骚戴2 小时前
2025 Python AI 实战:零基础调用 LLM API 开发指南
人工智能·python·大模型·llm·api·ai gateway
kobe_OKOK_2 小时前
tdeinge REST API 客户端
python·缓存·django
io_T_T2 小时前
Python os库 os.walk使用(详细教程、带实践)
python
TonyLee0173 小时前
使用argparse模块以及shell脚本
python
Blossom.1183 小时前
Prompt工程与思维链优化实战:从零构建动态Few-Shot与CoT推理引擎
人工智能·分布式·python·智能手机·django·prompt·边缘计算
love530love5 小时前
Windows 11 下 Z-Image-Turbo 完整部署与 Flash Attention 2.8.3 本地编译复盘
人工智能·windows·python·aigc·flash-attn·z-image·cuda加速
MediaTea6 小时前
Python:模块 __dict__ 详解
开发语言·前端·数据库·python
jarreyer6 小时前
python,numpy,pandas和matplotlib版本对应关系
python·numpy·pandas
代码or搬砖6 小时前
HashMap源码
开发语言·python·哈希算法