各位大大好:
想請問大家有沒有遇過這種開發情境,
在 Hybrid APP 中, web 使用 Angular4 開發,
web的畫面資料都是經由 APP 端取資料,
當呼叫 Android、IOS 定義好的 function name,
APP 端會callback 我定義好的 web 端 callback function
但,目前的寫法是呼叫不到 web 端 callback function
因為 APP 寫的callback 吃callback function 字串,
而 angular 專案已經藉由 webpack 將每個元件模組化拆好
請問我該如何呼叫某一個元件的 callback function 呢?
感謝大家
以下是範例程式:
以下是我寫的DeviceService
// Android、IOS 定義好的 function name
callNativeDevice(functionName, parameters) {
if (typeof window['DevicePlatform'] === 'undefined') {
alert('平台參數未定義');
} else if (window['DevicePlatform'] === 'iOS') {
window['webkit'].messageHandlers[functionName].postMessage(parameters);
} else if (window['DevicePlatform'] === 'Android') {
const jsonString = JSON.stringify(parameters);
window['mobile'][functionName](jsonString);
} else {
alert('平台參數為空值或不合法');
}
}
在自己元件的呼叫
/**
* 取得列表資料
*/
getData() {
// SD001 同步搜庫自選股
const options = {
SDName: 'SD001',
callback: 'this.didComplete(returnObject, deviceInfoObject)'
};
this.DeviceService.callNativeDevice('processSD', options);
}
/**
* callback function
*/
didComplete(returnObject, deviceInfoObject) {
alert('returnObject');
}