1
0
mirror of https://gitcode.com/gh_mirrors/re/react-native-pushy.git synced 2025-11-03 14:53:10 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee

parseTestPayload

This commit is contained in:
sunnylqm
2024-07-28 21:26:21 +08:00
parent a77c3c85f3
commit 4f80f96a8d
3 changed files with 40 additions and 11 deletions

View File

@@ -263,13 +263,7 @@ export const PushyProvider = ({
}, [checkUpdate, options, dismissError, markSuccess]);
const parseTestPayload = useCallback(
async (code: string) => {
let payload: PushyTestPayload;
try {
payload = JSON.parse(code);
} catch {
return false;
}
(payload: PushyTestPayload) => {
if (payload && payload.type && payload.type.startsWith('__rnPushy')) {
const logger = options.logger || (() => {});
options.logger = ({ type, data }) => {
@@ -294,6 +288,41 @@ export const PushyProvider = ({
[checkUpdate, options],
);
const parseTestQrCode = useCallback(
(code: string) => {
let payload: PushyTestPayload;
try {
payload = JSON.parse(code);
return parseTestPayload(payload);
} catch {
return false;
}
},
[parseTestPayload],
);
useEffect(() => {
const parseLinking = (url: string | null) => {
if (!url) {
return;
}
const params = new URLSearchParams(url);
const payload = {
type: params.get('type'),
data: params.get('data'),
};
parseTestPayload(payload);
};
Linking.getInitialURL().then(parseLinking);
const linkingListener = Linking.addEventListener('url', ({ url }) =>
parseLinking(url),
);
return () => {
linkingListener.remove();
};
}, [parseTestPayload]);
return (
<PushyContext.Provider
value={{
@@ -311,7 +340,7 @@ export const PushyProvider = ({
progress,
downloadAndInstallApk,
getCurrentVersionInfo,
parseTestPayload,
parseTestQrCode,
}}>
{children}
</PushyContext.Provider>