React Native:链接API没有发现优步应用

时间:2016-04-20 11:11:34

标签: ios react-native

由于某种原因,React Native Linking API的“canOpenURL”方法无法在我的设备上检测到Uber应用程序,即使“openURL”方法打开它也没问题。

下面有什么我想念的吗?

constructor(props) {
    super(props);
    this.state = {
        uberURL: 'uber://?client_id=eJCfG86Rz&action=setPickup',
        isUberInstalled: false
    };
}

componentWillMount() {
    Linking.canOpenURL(this.state.uberURL).then(isUberInstalled => {
        this.setState({ isUberInstalled: isUberInstalled });
    });
}

this.state.isUberInstalled 总是 false

1 个答案:

答案 0 :(得分:1)

您必须将您使用的方案添加到应用的Info.plist LSApplicationQueriesSchemes

来自canOpenURL:文档:

  

如果您的应用在iOS 9.0上或之后进行了关联,则必须声明要传递给此方法的网址方案。通过在Xcode项目的LSApplicationQueriesSchemes文件中使用Info.plist数组来完成此操作。对于您希望应用程序使用此方法的每个URL方案,请将其添加为此数组中的字符串。

如果您的(iOS 9.0或更高版本)应用使用您尚未声明的方案调用此方法,则该方法将返回NO,无论该方案是否安装了该方案的相应应用。