Tutorial: 获取PPT备注

获取PPT备注

获取PPT备注

方式一:通过白板SDK获取

适用于通过白板SDK加载的PPT课件。

使用白板SDK提供的getPPTRemarks接口,条件限制:白板SDK2.7.6+版本

调用时机:收到PPT加载完成的事件TEDU_BOARD_H5_PPT_STATUS_LOADED回调

teduBoard.on(TEduBoard.EVENT.TEB_H5PPT_STATUS_CHANGED, (status, data) => {
  if (status === TEduBoard.TEduBoardH5PPTStatus.TEDU_BOARD_H5_PPT_STATUS_LOADED) {
    // 示例一:获取指定课件的所有备注
    teduBoard.getPPTRemarks(fid, -1);

    // 示例二:获取指定页的备注,如获取第5页
    teduBoard.getPPTRemarks(fid, 4);
  }
});

方式二:通过PostMessage来获取

适用于业务页面通过iframe加载ppt课件。

// iframe加载课件
<iframe id="test_iframe" src="https://ppt2h5-1400127140.qcloudtiw.com/gm0drbg19vgr2r4g2pbc/index.html" frameborder="0" style="width: 800px;height:600px;"></iframe>

<button onclick="getPPTRemark()">获取所有页备注</button>
<button onclick="getPPTRemark(0)">获取第一页</button>
<button onclick="getPPTRemark(1)">获取第二页</button>

// 接收postmessage通信
window.onmessage = function (e) {
	if (!e.data) {
		return;
	}
	const module = e.data.module;
	if (module === 'tx_ppt_ret_postmessage') { //  固定判断条件
		let cmd = e.data.cmd;
		if (cmd === 'remarks') { //  固定判断条件
			const data = e.data.data; // ppt备注
			console.log('pptremark:', data);
		}
	}
}

function getPPTRemark(pageIndex) {
	document.querySelector('#test_iframe').contentWindow.postMessage({
		module: 'tx_ppt_postmessage', // 固定参数
		cmd: 'ppt_get_remarks', //  固定参数
		data: {
			pageIndex: pageIndex    // -1:表示获取当前ppt所有备注;其他表示获取当前ppt索引页(从0开始)的备注
		}
	}, '*');
}

方式三:通过访问html meta自定义数据获取

适用于直接在浏览器中打开。此方式只能获取全量的备注,不支持获取指定页的备注。

document.querySelector('meta[name="ppt_remarks"]').getAttribute('content');