flutter_yii_qiyu

Last updated:

0 purchases

flutter_yii_qiyu Image
flutter_yii_qiyu Images
Add to Cart

Description:

flutter yii qiyu

Qiyu #



Flutter目前官方沒有支援,所以自行實作原生SDK,製作 Flutter Package

如何使用? #
初始化 #

appKey ➤ 七魚後台給予APP接入的金鑰
appName ➤ 七魚後台設置接入APP的名稱
deviceIdentifier ➤ 用戶裝置的ID,主要是設置後,七魚在客服的推播會附帶此資料,我們伺服器後端收到後可以經由此ID取得對應的推播Token(例如:Fcm Token),經由Token送出推播訊息給用戶

String appKey = 'd433ac25ced4170d98a66b3eda15es12';
String appName = 'qiyu-plugin-example';
String deviceIdentifier = 'AAAAAABBBBBBBBCCCCDDDDD';
await Qiyu.initialize(
appKey: appKey, appName: appName, deviceIdentifier: deviceIdentifier);
copied to clipboard

套件 ➤ 取得設備資訊 ➤ device_info

用戶資訊 #
幫用戶設置多種個人資訊,每個資訊為一個物件,最終給予物件陣列的Json字串

姓名、手機、信箱為預設的資料欄位,其他需要自行補充

index ➤ 用於排序,顯示數據時數據項按index值升序排列;不設定index的數據項將排在後面;index相同或未設定的數據項將按照其在JSON 中出現的順序排列。
key ➤ 數據項的名稱,用於區別不同的數據
value ➤ 該數據顯示的值,類型不做限定,根據實際需要進行設定
label ➤ 該項數據顯示的名稱
href ➤ 超鏈接地址。若指定該值,則該項數據將顯示為超鏈接樣式,點擊後跳轉到其值所指定的URL地址
hidden ➤ 是否隱藏該item。目前僅對mobile和email有效

class QiyuUserInfoData {

static const keyName = 'real_name';
static const keyPhone = 'mobile_phone';
static const keyEmail = 'email';

int? index;
String key;
String value;
String label;
String? href;
bool hidden;

QiyuUserInfoData({
this.index,
required this.key,
required this.value,
required this.label,
this.href,
this.hidden = false,
});

factory QiyuUserInfoData.fromJson(Map<String, dynamic> json) => _$QiyuUserInfoDataFromJson(json);
Map<String, dynamic> toJson() => _$QiyuUserInfoDataToJson(this);
}

copied to clipboard
登入,設置用戶資訊 #

userId ➤ 識別用戶的唯一ID
userInfoDataList ➤ 用戶資訊的清單

await Qiyu.setUserInfo(userId: 'yii555', userInfoDataList: list);
copied to clipboard
注意:記得切換用戶的時候要先登出後再進行登入
登出 #
final bool isLogoutSuccess = await Qiyu.logoutUser();
copied to clipboard
設置裝置ID #
Qiyu.setDeviceIdentifier(deviceIdentifier: deviceIdentifier);
copied to clipboard
開啟客服頁面 #
Qiyu.showCustomerService();
copied to clipboard

範例 #
@override
void initState() {
super.initState();
runQiyu();
}

Future<void> runQiyu() async {
// 取得設備ID
String deviceIdentifier = '';
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isIOS) {
final IosDeviceInfo iosDevice = await deviceInfo.iosInfo;
deviceIdentifier = iosDevice.identifierForVendor;
} else if (Platform.isAndroid) {
final AndroidDeviceInfo androidDevice = await deviceInfo.androidInfo;
deviceIdentifier = androidDevice.androidId;
}
// 初始化
await Qiyu.initialize(
appKey: 'd433ac25ced4170d98a66b3eda15es12', appName: 'qiyu-plugin-example', deviceIdentifier: deviceIdentifier);
// 設置用戶或更新用戶之前必須確保已經將用戶登出
final bool isLogoutSuccess = await Qiyu.logoutUser();
if (isLogoutSuccess) {
// 設置用戶資訊
List<QiyuUserInfoData> list = [];
list.add(QiyuUserInfoData(key: QiyuUserInfoData.keyName, value: 'Test(555)', label: '名字'));
list.add(QiyuUserInfoData(key: QiyuUserInfoData.keyPhone, value: '0939552555', label: '電話'));
list.add(QiyuUserInfoData(key: QiyuUserInfoData.keyEmail, value: '[email protected]', label: '信箱'));
list.add(QiyuUserInfoData(key: 'city', value: 'Taipei', label: '城市', index: 0));
await Qiyu.setUserInfo(userId: 'yii555', userInfoDataList: list);
}
}
copied to clipboard

問題 #

SDK修復包,5.7.9,整合至Flutter App專案時,遇到Flutter找不到Android Module的問題。
解決方法請查看下方↓


連結 #

網易七魚
下載
Android開發
iOS開發

關於我 #

Medium:Yii Chen
Youtube:Yii
Email:[email protected]

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.