??最近想要做一个类似于淘宝每次打开会根据用户剪贴板内容弹出对应商品的功能。要完成这个功能需要每次唤醒APP都读取一次剪贴板。
1、监听 && 销毁
1 async componentDidMount () { 2 AppState.addEventListener(‘change‘, this.handleAppStateChange); 3 } 4 5 componentWillUnmount () { 6 AppState.removeEventListener(‘change‘, this.handleAppStateChange) 7 }
2、在状态为‘active‘的时候,调用获取剪贴板内容的函数
1 handleAppStateChange = (appState) => { 2 if (appState === ‘active‘) { 3 // 获取剪贴板内容 4 getClipboardShare() 5 } 6 };
3、获取并处理剪贴板内容
注:以淘宝为例,复制的命令如‘覆置这行话¢MpH11QLk30c¢转移至??τаo宝аρρ??’。用split方法截取符号‘¢’中间的字符串。
1 export const getClipboardShare = () => { 2 Clipboard.getString().then(res => { 3 console.log(‘剪贴板复制‘, res); 4 if(res.indexOf(‘¢‘)) { 5 const shareCode = res.split(‘¢‘)[1].split(‘¢‘)[0]; 6 console.log(‘截取的code‘, shareCode); 7 } 8 }); 9 };
End-------------------------------
终于上班啦~