NodeJS 未从深度链接接收到查询参数- react native(expo)和node js

jei2mxaa  于 2022-11-03  发布在  Node.js
关注(0)|答案(1)|浏览(144)

我正在使用openAuthSessionAsync调用后端并发送深度链接的URL我成功重定向回我的应用程序,但我没有获得从后端发送的具有深度链接的查询参数
我的react原生应用端:

const experiment = async()=>{
        try{
         let result = await WebBrowser.openAuthSessionAsync(`http://myaddress :3901/api/testig?linkingUri=${Linking.createURL(
           "/?",
         )}`,);
         console.log(result)
        }catch(errr){
          console.log(errr)
        }

      }

我的节点js端:

router.get("/testig",(req,res)=>{

    url = req.query.linkingUri

**//url is exp://myaddress:19000/--/?**

    res.redirect(url+"?authToken=abc123")

})

我也尝试过在后台硬编码的网址,但它只打开应用程序回来,但没有参数
在控制台中的react原生端中,我得到以下内容:

Object:{
"type":"dismiss",
}

UPDATE:通过为LINKING设置eventListener解决了此问题,如下所示

const handleDeepLink = (event)=>{
        let data = Linking.parse(event.url)
        setdata(data)
        if(JSON.parse(data.queryParams.isSuccessful) == true)
        {
          props.navigation.navigate("thankyou")
        }
      }
      React.useEffect(()=>{
        Linking.addEventListener("url",handleDeepLink)
        return(()=>{
          Linking.removeEventListener("url")
        })
      },[])
z9smfwbn

z9smfwbn1#

在块中使用trycarch查看错误并使用var url
代码看起来像

router.get("/testig",(req,res)=>{
    try {
        var url = req.query.linkingUri
        return res.redirect(url+"?authToken=abc123")
    } catch (e) {
        console.log(e)
    }
})

相关问题