链接.canOpenURL对IOS返回true,对Android: React Native返回fa



我有一个简单的字符串"twist"从后端传递,这不是模拟器的uri

我的链接代码如下

console.log(url);     
let linkOpened = false;     
Linking.canOpenURL(url).then((canOpen) => {       
console.log("canOpen : ", canOpen);       
if (canOpen) {         
Linking.openURL(url);         
linkOpened = true;       
} else {         
console.log("i am calling");       
}     
});

我们可以看到"twist"是一个字符串,而不是一个无法打开的URL。相同的代码在android模拟器上返回false,这是正确的结果但在IOS上返回true,这是错误的

IOS Watchman Output

在github/stackoverflow/apple dev论坛上没有一个答案对我有用

我还在info.plist中添加了这个

<key>LSApplicationQueriesSchemes</key>
<array>
<string>twist</string>
<string>nothing</string>
</array>

上运行XCODE 14节点165.13.0

请帮助我。:)

链接后端使用https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl

它直接链接ios nsurl到javascript字符串导致错误现在使用下面的代码并等待那里的更新

const url = 'twist:';
console.log(url);
let linkOpened = false;
if (url.search(':') != -1) {
console.log('url', url.search(':'));
try {
linkOpened = await Linking.canOpenURL(url);
} catch (error) {}
}
console.log('linkOpened', linkOpened);

最新更新