markdown 微信小程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 微信小程序相关的知识,希望对你有一定的参考价值。

server demo

client demo

https://www.zhihu.com/question/50907897

https://github.com/CFETeam/weapp-demo-album

tips:

由于小程序限制,不支持很多H5相关的DOM功能,比如需要录制H5的webGL功能,并实时录制;
在H5也面下,
```js
      var canvas = document.querySelector('canvas');
				// var video = document.querySelector('video');

			var stream = canvas.captureStream(30);
			startRecording(stream);
				
      var mediaRecorder;
			var recordedBlobs;


			function handleDataAvailable(event) {
			  if (event.data && event.data.size > 0) {
			  	console.log('handleDataAvailable: ');
			    recordedBlobs.push(event.data);
			  }
			}

			function handleStop(event) {
			  console.log('Recorder stopped: ', event);
			}


			function startRecording(stream) {
			  recordedBlobs = [];
			  var options = {mimeType: 'video/webm;codecs=vp9'};
			  if (!MediaRecorder.isTypeSupported(options.mimeType)) {
			    console.log(options.mimeType + ' is not Supported');
			    options = {mimeType: 'video/webm;codecs=vp8'};
			    if (!MediaRecorder.isTypeSupported(options.mimeType)) {
			      console.log(options.mimeType + ' is not Supported');
			      options = {mimeType: 'video/webm'};
			      if (!MediaRecorder.isTypeSupported(options.mimeType)) {
			        console.log(options.mimeType + ' is not Supported');
			        options = {mimeType: ''};
			      }
			    }
			  }
			  try {
			    mediaRecorder = new MediaRecorder(stream, options);
			  } catch (e) {
			    console.error('Exception while creating MediaRecorder: ' + e);
			    alert('Exception while creating MediaRecorder: '
			      + e + '. mimeType: ' + options.mimeType);
			    return;
			  }
			  console.log('Created MediaRecorder', mediaRecorder, 'with options', options);
			  mediaRecorder.onstop = handleStop;
			  mediaRecorder.ondataavailable = handleDataAvailable;
			  mediaRecorder.start(1000); // collect 10ms of data
			  console.log('MediaRecorder started', mediaRecorder);
			}

			function stopRecording() {
			  // recordedBlobs = mediaRecorder.stop();
			  console.log('Recorded Blobs: ', recordedBlobs);
			  // recordedVideo.controls = true;
			}
			
			
 var blob = new Blob(recordedBlobs, {type: 'video/webm'});
			  var reader = new FileReader();
			 reader.readAsDataURL(blob); 
			 reader.onloadend = function() {
			     base64data = reader.result;  
			      wx.miniProgram.postMessage({ data:  base64data })
			 }
	```
从H5传输数据到小程序
在小程序下:
```js
index.js
  msgHandler: function (e) {
    console.log(e.detail.data) //获取到来自也页面的数据
    app.globalData.videodata = e.detail.data
  }
index.wxml
  <web-view src="http://127.0.0.1/" bindmessage="msgHandler"></web-view>

video.js
Page({
    data: {
      videodata:''
    },

    onShow: function () {
      console.log(app.globalData.videodata)
      this.setData({
        videodata: app.globalData.videodata
      })
    }
})

video.wxml
  <video id="myVideo" src="{{videodata}}"</video>
  
```

此时依然存在一个问题:

小程序不支持将base64或者arraybuffer数据流直接保存成文件;

以上是关于markdown 微信小程序的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序支持Markdown教程

重磅推荐:可将 HTML 和 Markdown 一键转换为微信小程序 WXML 的库

微信小程序实例

微信小程序框架集合

uniapp markdown最佳渲染方案

让你的「微信小程序」运行在Chrome浏览器上,让我们使用WebStorm