我一直在使用Expo开发一个反应原生应用程序,我目前正在尝试实现的功能是与fb messenger/whatapp等平台上的朋友共享链接,甚至是普通文本,当他们单击此链接时,它会使用参数将我的应用程序启动到特定页面。
经过广泛的网上研究,我找到了一个拦截器,根据expo的文档,我为我的应用定义了一个方案,当我按下分享一切正常工作时,就会创建一条消息,我可以分享内容,但只能是字符串。
我正在使用react-natives共享库来分享到一个应用程序,我正在使用Expo为我提供链接。
理想情况下,我的第一个目标是在进一步探索向链接添加更多功能之前,使用世博会链接打开应用程序。
Share.share({
message: "Click Here to View More! " + Linking.makeUrl( ' ' , { postkey : "7a5d6w2x9d6s3a28d8d});
url: Linking.makeUrl( ' ' , { pkey : gkey });
title: 'This post is amazing',
})
.then((result) =>{
console.log(result)
if(result === 'dismissedAction'){
return
}
})
.catch((error) => console.log(error))在我的应用程序的根目录中,我还定义了事件处理程序: App.js
_handleRedirect=(event)=> {
let {path,queryParams} = Linking.parse(event);
Alert.alert(`queryparams : ${event} path : ${path} `)
this.props.navigation.navigate("Post_Detail",{key:queryParams.postkey})
}
}
componentDidMount() {
let scheme = 'nxet'
Linking.getInitialURL()
.then(url => {
console.log("App.js getInitialURL Triggered")
// this.handleOpenURL({ url });
})
.catch(error => console.error(error));
Linking.addEventListener('url', ({url}) => this._handleRedirect(url));;
}
componentWillUnmount() {
Linking.removeEventListener('url', this.handleOpenURL);
}当我分享Whatsapp、Facebook Messenger的链接,或者只是显示为myapplink://的消息或笔记时,我会尝试在浏览器中输入这一链接,而不是要求我打开我的应用程序-它会进行谷歌搜索。
请注意,我正在尝试让它在Android设备上工作,并面临这个问题
我是不是做错了什么?
任何帮助都是非常感谢的。谢谢。
发布于 2021-01-21 21:32:09
你不能打开外部链接,方法是在Android上打开http、https以外的链接。但你可以在iOS上使用。为了能够打开您的世博会链接,您需要在android上使用适当的锚标签。你可以创建html邮件,然后试一试,你会发现它也能在Android上工作。
https://stackoverflow.com/questions/62717985
复制相似问题