更新1
我从代码中删除了return
,现在链接在IOS上可用。
但是在android上,我无法打开任何应用。有什么主意吗?
我正在尝试打开与我的应用不同的应用。
return Linking.openURL(“twitter://“);
return Linking.openURL(“instagram://“);
但这不起作用。我通过文档配置了IOS。在android上也无法使用。一会儿...
return Linking.openURL(“tripadvisor://“);
工作正常。
知道为什么我无法打开其他应用。
这是我正在使用的代码(如果已安装,则打开应用程序或使用它打开商店,但有时甚至商店都无法打开)我做错了:
let appUrl = "instagram://";
Linking.canOpenURL(appUrl).then(supported => {
if (!supported) {
Alert.alert("",
"",
[
{text: "go to store", onPress: this.openStorePress},
{text: "cancel", onPress: () => { }, style: 'cancel'},
],
{ cancelable: false }
);
} else {
return Linking.openURL(appUrl);
}
}).catch(err => {
console.error(err);
});
答案 0 :(得分:2)
您必须找到权限URL方案。看我的代码
Linking.openURL('instagram://user?username=apple')
.catch(() => {
Linking.openURL('https://www.instagram.com/apple');
})
Linking.openURL('twitter://user?screen_name=apple')
.catch(() => {
Linking.openURL('https://www.twitter.com/apple');
})
Linking.openURL('fb://page/PAGE_ID');
Linking.openURL('http://instagram.com/_u/USER_NAME');
Linking.openURL('http://instagram.com/_p/PICTURE');
答案 1 :(得分:1)
您的问题与url的内容有关,twitter://
对于Android Twitter应用没有意义,因此它将无法打开。
例如,以下代码应该起作用:
Linking.openURL('twitter://timeline')
或
Linking.openURL('instagram://user?username=apple')
您必须找到在iOS和Android之间可能有所不同的权利url方案(文档对此不太清楚)。
答案 2 :(得分:0)
您还没有完成import { MatTableModule } from '@angular/material/table';
import { MatPaginatorModule } from '@angular/material/paginator';
等Twitter和instagram,我不知道您是否也在应用中犯了同样的错误,如果可以,请解决此错误。
答案 3 :(得分:0)
我只使用了url,并且可以同时在iOS和android上使用
Linking.openURL('https://www.facebook.com/');
答案 4 :(得分:0)
您的代码看起来很扎实,这是我如何在应用程序中打开Twitter的示例。
const twitterUrlScheme = `twitter://user?screen_name=${twitterUsername}`;
Linking.canOpenURL(twitterUrlScheme)
.then((supported) =>
Linking.openURL(
supported
? twitterUrlScheme
: `https://www.twitter.com/${twitterUsername}`
)
)
.catch((err) => console.error('An error occurred', err));
我认为您的问题可能是return Linking.openUrl
,我不确定您是否需要该声明中的返回值。如果您删除退货,是否可行?否则,可能将Alert
从canOpenUrl移到then块之外。
答案 5 :(得分:0)
尝试使用类似以下的程序包:
https://github.com/react-native-community/react-native-share
您可以尝试仅使用其中的一些功能,或者从那里查看本机代码,并在本机代码中创建一些桥函数,然后将其导出以在JS代码中使用。
注意:您必须使用真实的设备进行测试。