Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,21 @@ public void setString(String text) {
}
}

@ReactMethod
public void clearClip(Promise promise) {
try {
ClipboardManager clipboard = getClipboardService();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
clipboard.clearPrimaryClip();
promise.resolve(true);
}
promise.resolve(false);
} catch (Exception e) {
promise.reject(e);
e.printStackTrace();
}
}

@ReactMethod
public void hasString(Promise promise) {
try {
Expand Down
9 changes: 9 additions & 0 deletions example/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@ export const App: React.FC = () => {
Alert.alert(`Copied to clipboard: ${text}`);
};

const clearClipboardText = async () => {
if (await Clipboard.clearClip()) {
Alert.alert(`Clipboard Cleared Success`);
return;
}
Alert.alert(`Clipboard Cleared Failed`);
};

const writeImageToClipboard = async () => {
Clipboard.setImage(TEST_IMAGE);
Alert.alert(`Copied Image to clipboard`);
Expand Down Expand Up @@ -91,6 +99,7 @@ export const App: React.FC = () => {
placeholder="Type here..."
/>
<Button onPress={writeToClipboard} title="Write to Clipboard" />
<Button onPress={clearClipboardText} title="Clear Clipboard" />
<Button
onPress={writeImageToClipboard}
title="Write Image to Clipboard"
Expand Down
14 changes: 14 additions & 0 deletions src/Clipboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,20 @@ export const Clipboard = {
}
return NativeClipboard.hasWebURL();
},
/**
* (Android Only)
* Clear clipboard return promise with boolean if clipboard cleared,
* this Added in Android API level 28
* ```javascript
* await Clipboard.clearClip();
* ```
*/
clearClip(){
if (Platform.OS == 'ios') {
return;
}
return NativeClipboard.clearClip();
},
/**
* (iOS and Android Only)
* Adds a listener to get notifications when the clipboard has changed.
Expand Down
1 change: 1 addition & 0 deletions src/NativeClipboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export interface Spec extends TurboModule {
hasImage: () => Promise<boolean>;
hasURL: () => Promise<boolean>;
hasWebURL: () => Promise<boolean>;
clearClip: () => Promise<boolean>;
}

export default TurboModuleRegistry.get<Spec>('RNCClipboard') as Spec;
Expand Down