QScreenshotShare 截屏分享功能

API兼容性:
QRN:v1.5.0
iOS:80011127
Android:60001149

QScreenshotShare用来实现截屏分享, 分享出去的图片带二维码链接,其中scheme的设置可以参考wiki ,可以识别并跳转到相应的RN页面, 如下图所示:

引入

import { QScreenshotShare } from 'qunar-react-native';

API

QScreenshotShare.register (scheme)
注册截屏监听,传入的scheme为需要监听的RN页面的scheme。 注册监听后,就会监听页面的截屏事件。一旦用户进行了截屏操作,就会在屏幕右侧有个中间页提示分享。 scheme的设置可以参考wiki

QScreenshotShare.unregister ()
移除截屏监听,不需要传入参数。 当页面退出,或者不需要截屏监听的时候,就需要移除这个监听了。 需要注意的是:只要注册了一个监听,就需要在使用监听完成后移除一个监听。

screenshotAndShare (scheme, successCallback, errorCallback)
用户主动截屏分享,当按下分享按钮,就会执行这个功能,弹出右侧的中间页提示分享。 用户主动监听的话,不用注册监听。 scheme的设置可以参考wiki

示例

'use strict';

import React, { 
      QScreenshotShare 
} from 'qunar-react-native';

//需要截屏分享的页面,可以在页面进入的时候就写入监听,传入页面scheme,不用带scheme头,这里scheme以hotel/main为例
QScreenshotShare.register('hotel/main')

//在页面销毁的时候移除监听
QScreenshotShare.register()

//需要有用户主动分享功能的话,就使用下面的方法
<TouchableHighlight
         style={styles.wrapper}
        //传入页面的scheme  这里举例传入 'hotel/main'
         onPress={() => {QScreenshotShare.screenshotAndShare('hotel/main' ,()=>{
          //截屏成功的回调方法 iOS暂时拿不到回调
              Toast.show('截屏分享成功', Toast.SHORT, Toast.MIDDLE);
             }, ()=>{
          //截屏失败的回调
              Toast.show('截屏分享失败', Toast.SHORT, Toast.MIDDLE);
             })
}}>
<View style={styles.text}>
    <Text>点击截屏并分享</Text>
</View>        
</TouchableHighlight>