簡體   English   中英

如何在彈出的 react-native 應用程序中配置 Info.plist 文件使用 expo sdk

[英]How to configure Info.plist file in ejected react-native app uses expo sdk

我使用react-native ini projectName創建了一個應用程序,並添加了一個名為react-native-facebook-account-kit的本地模塊包,我需要更改 ios 文件夾中的 Info.plist 並添加應用程序 ID 和客戶端令牌信息。 我還創建了一個 pod 文件,正如 facebook 文檔所說。 它工作正常。 然后我試着在世博會上做一模一樣的東西。 所以我使用這個 cli 創建一個新項目create-react-native-app projectName然后我運行npm run eject並選擇第二個選項,它同時使用 react-native 和 expo sdk。 所以它成功創建了 ios 和 android 文件夾。

但是在 ios 文件夾中沒有 Info.plist 文件。 經過我的搜索,我找到了這個文檔。 https://docs.expo.io/versions/latest/workflow/configuration#ios我像doc所說的那樣在app.json添加了一些鍵和值。

    {
  "expo": {
    "sdkVersion": "27.0.0",
    "ios": {
      "bundleIdentifier": "com.cecil.foxtail",
      "infoPlist": {
        "FacebookAppID": "myAppId",
        "AccountKitClientToken": "myClientToken",
        "CFBundleURLTypes": [
          // ??? CONFUSED
        ]
      }
    },
    "android": {
      "package": "com.cecil.foxtail"
    }
  }
}

這是來自應用程序的原始 Info.plist,它運行良好。

<key>FacebookAppID</key>
  <string>{app-id}</string>
  <key>AccountKitClientToken</key>
  <string>{client-token}</string>
  <key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>ak{client-token}</string>
      </array>
    </dict>
  </array>

那么如何將這些數組定義到 app.json 中呢?

您不需要設置自定義 URL 架構,因為 expo 默認將其設置為您的bundleIdentifier

"bundleIdentifier": "com.cecil.foxtail",

所以你可以通過調用這樣的東西從另一個調用你的應用程序:-

let websiteUrl ="https://apps.apple.com/myappInstallationPage";
let SchemaUrl = 'com.cecil.foxtail://';
Linking.canOpenURL(SchemaUrl).then(supported => {
    if (supported) {
        console.log('accepted');
        return Linking.openURL(SchemaUrl);
    } else {
        console.log('an error occurred');
    }
}).catch(err => {
    Linking.openURL(websiteUrl).catch(reason => console.log('Failed to open app website!'))
    console.log('an error occurred')
});

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM