我有一个简单的字符串"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);