我一直在使用Expo开发一个本机应用程序,我目前正在尝试实现的功能是在任何平台上与朋友分享链接,当他们点击此链接时,它将启动我的应用程序。
经过在线广泛研究后,我来到了一个拦截器,expo's documentation我为我的应用定义了一个方案 - 当我按分享一切正常时,一条消息被创建并且我能够分享内容但是只作为字符串。
我正在使用react-natives共享库来共享应用程序,我正在使用Expo为我提供链接。
理想情况下,我的第一个目标是在我进一步探索为链接添加更多功能之前,使用Expo Link打开应用程序。
Share.share({
message: "Click Here to View More! " + Expo.Linking.makeUrl() ,
url: Expo.Linking.makeUrl(),
title: 'Sufiyaan has invited you to join this activity',
})
.then((result) =>{
console.log(result)
if(result === 'dismissedAction'){
return
}
})
.catch((error) => console.log(error))
在我的应用程序的根目录中,我还定义了事件处理程序:App.js
handleOpenURL(event) {
if (event.url && event.url.indexOf(scheme + '://') === 0) {
crossroads.parse(event.url.slice(scheme.length + 3));
}
}
componentDidMount() {
let scheme = 'nxet'
Expo.Linking.getInitialURL()
.then(url => {
console.log("App.js getInitialURL Triggered")
// this.handleOpenURL({ url });
})
.catch(error => console.error(error));
Linking.addEventListener('url', this.handleOpenURL);
}
componentWillUnmount() {
Linking.removeEventListener('url', this.handleOpenURL);
}
当我分享Whatsapp,Facebook Messenger甚至只是消息或备注的链接时,它显示为myapplink://,我尝试将其输入浏览器,而不是让我打开我的应用程序 - 它会进行谷歌搜索。
请注意我在Android设备上尝试此操作。
我做错了吗?
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
据此: https://docs.expo.io/versions/v28.0.0/workflow/linking#__next
您需要提供一个指向自己网站的链接,然后将其重定向到您应用的slug://链接,以使gmail和其他android应用正常工作。