Expo
Zalo Kit có sẵn config plugin, nên dự án Expo không phải sửa tay phần native nào.
Thêm plugin
{
"expo": {
"plugins": [["react-native-zalo-kit", { "appId": "<YOUR_ZALO_APP_ID>" }]]
}
}Sau đó sinh project native bằng npx expo prebuild, hoặc build bằng EAS. Expo Go không dùng được vì Zalo SDK là code native, bạn cần dùng development build.
Tùy chọn
| Tùy chọn | Kiểu | Mô tả |
|---|---|---|
appId | string | Bắt buộc. Zalo App ID của bạn (dạng số). |
Truyền appId dưới dạng chuỗi
Zalo App ID dài 19 chữ số, vượt quá độ chính xác của số trong JSON: 2451745039837416278 sẽ bị đọc thành 2451745039837416400. Plugin sẽ báo lỗi nếu nhận một số đã bị mất chính xác như vậy.
Plugin thay đổi những gì
Android
- thêm string resource
zalokit_app_id; - thêm meta-data
com.zing.zalo.zalosdk.appIDvàoAndroidManifest.xml; - thêm
BrowserLoginActivityvới schemezalo-<appId>.
iOS
- đặt
ZaloAppIDtrongInfo.plist; - thêm
zalosdkvàzaloshareextvàoLSApplicationQueriesSchemes; - thêm URL type
zalo-<appId>; - sửa
application(_:open:options:)trongAppDelegateđể chuyển URL callback của Zalo cho SDK xử lý trước. Hỗ trợ cả template SwiftExpoAppDelegate(SDK 53 trở lên) lẫn templateAppDelegateObjective-C.
Chạy prebuild lại bao nhiêu lần cũng không sao: không có gì bị thêm trùng, và scheme được cập nhật nếu bạn đổi appId.
AppDelegate tự viết
Nếu AppDelegate của bạn không có method application(_:open:options:), prebuild sẽ báo lỗi kèm link tới phần thiết lập iOS. Hãy thêm method đó và chuyển URL cho SDK như trong hướng dẫn iOS, rồi chạy lại prebuild. Plugin sẽ không đụng vào AppDelegate nào đã gọi ZDKApplicationDelegate.