nieyuge 2 anos atrás
pai
commit
1bc2f0439a
2 arquivos alterados com 62 adições e 28 exclusões
  1. 37 8
      src/pages/navigations/NFTs.tsx
  2. 25 20
      src/pages/navigations/message.tsx

+ 37 - 8
src/pages/navigations/NFTs.tsx

@@ -1,12 +1,41 @@
 import React from 'react';
-import { Text, View } from 'react-native';
-
-const NFTs = () => {
-	return (
-		<View style={{ flex: 1 }}>
-			<Text>NFTs page</Text>
-		</View>
-	);
+import { LoginView } from '@/components/loginView';
+import { DenetWebview } from '@/components/webview';
+import { useLoginCom } from '@/components/useLogin';
+import messageCenter from '@/utils/messageCenter';
+
+interface Props {
+    navigation: any;
+}
+
+let webref: any;
+
+const onMessage = async (event: any) => {
+    let { info, data } = (event.nativeEvent.data && JSON.parse(event.nativeEvent.data)) || {};
+    switch (info.actionType) {
+        case 'IFRAME_GET_EXTENSION_STORGE_DATA':
+            info.target = webref;
+            messageCenter.send({ info, data });
+            break;
+    }
+}
+
+const NFTs = (props: Props) => {
+    const { isLogin, goTwitterAuthorize } = useLoginCom(props);
+
+    if (isLogin === false) {
+        return (
+            <LoginView goLogin={goTwitterAuthorize}></LoginView>
+        );
+    } else {
+        return (
+            <DenetWebview
+                onMessageHandle={onMessage}
+                refHandle={r => (webref = r)}
+                uri="http://localhost:3000/nav-nft-index">
+            </DenetWebview>
+        );
+    }
 };
 
 export default NFTs;

+ 25 - 20
src/pages/navigations/message.tsx

@@ -2,35 +2,40 @@ import React from 'react';
 import { LoginView } from '@/components/loginView';
 import { DenetWebview } from '@/components/webview';
 import { useLoginCom } from '@/components/useLogin';
+import messageCenter from '@/utils/messageCenter';
 
 interface Props {
-	navigation: any;
+    navigation: any;
 }
 
+let webref: any;
+
 const onMessage = async (event: any) => {
-	let { info, data } = (event.nativeEvent.data && JSON.parse(event.nativeEvent.data)) || {};
-	switch (info.actionType) {
-		case 'IFRAME_GET_EXTENSION_STORGE_DATA':
-			
-			break;
-	}
+    let { info, data } = (event.nativeEvent.data && JSON.parse(event.nativeEvent.data)) || {};
+    switch (info.actionType) {
+        case 'IFRAME_GET_EXTENSION_STORGE_DATA':
+            info.target = webref;
+            messageCenter.send({ info, data });
+            break;
+    }
 }
 
 const Message = (props: Props) => {
-	const { isLogin, goTwitterAuthorize } = useLoginCom(props);
+    const { isLogin, goTwitterAuthorize } = useLoginCom(props);
 
-	if (isLogin === false) {
-		return (
-			<LoginView goLogin={goTwitterAuthorize}></LoginView>
-		);
-	} else {
-		return (
-			<DenetWebview
-				onMessageHandle={onMessage}
-				uri="http://localhost:3000/nav-message?iframeID=de-nav-message-page&appVersionCode=23">
-			</DenetWebview>
-		);
-	}
+    if (isLogin === false) {
+        return (
+            <LoginView goLogin={goTwitterAuthorize}></LoginView>
+        );
+    } else {
+        return (
+            <DenetWebview
+                onMessageHandle={onMessage}
+                refHandle={r => (webref = r)}
+                uri="http://localhost:3000/nav-message">
+            </DenetWebview>
+        );
+    }
 };
 
 export default Message;