Я начинающий программист и новичок в расширениях Adobe, но разработал расширение, которое не работает корректно в Photoshop 2015. Оно отлично работает в PS 2017, 2018 и 2019.
Я читаю данные массива изфайл JSON с JSX и использование прослушивателя событий в файле main.js для возврата данных. Расширение считывает настройки из возвращенного массива. Он отлично работает, за исключением PS 2015, где он может возвращать только идентификатор пользователя, но не более.
Код JSX, считывающий данные из локального файла:
function ReadUserStoredDataFromFile(vfilepath){
var rd = ReadFileData(vfilepath);
SendDataToListenerJS("getuserstoredinfo",rd);
}
function ReadFileData(vfullpath){
fle = File(vfullpath);
var filedata = 0;
if(fle.exists){
fle.open('r');
filedata = fle.read();
fle.close();
}
return filedata;
}
function SendDataToListenerJS(JSlistenerName,DatatoJS){
try {
var xLib = new ExternalObject("lib:\PlugPlugExternalObject");
} catch (e) {
alert(e);
}
if (xLib) {
var eventObj = new CSXSEvent();
eventObj.type = JSlistenerName;
eventObj.data = DatatoJS;
eventObj.dispatch();
}
}
INDEX.HTML
var datareceived_arry = new Array();
MAIN.JS Код
var usermydocuments = csInterface.getSystemPath(SystemPath.MY_DOCUMENTS);
setTimeout(AutoStatus, 1000);
function AutoStatus(){
var usdocfp = '"' + usermydocuments + '/rt/autostatus.json' + '"';
csInterface.evalScript('ReadUserStoredDataFromFile('+ usdocfp +')');
}
csInterface.addEventListener("getuserstoredinfo", function(evt) {
datareceived_arry = evt.data;
var unoti = GetAllNotifications();
});
function GetAllNotifications(){
//get user notification
var allunotifications = "none";
//add userid
allunotifications = "<b>Userid: " + datareceived_arry['userinfo']['userid'] + "</b>";
alert(datareceived_arry['userinfo']['userid']); //This shows the userid Fari
alert(JSON.stringify(datareceived_arry['apps'][0]['version'])); //This shows undefined
alert(JSON.stringify(datareceived_arry)); //This shows all the data
$('#showdata').html(JSON.stringify(datareceived_arry)); //This shows all the data
}
Вот данные, сохраненные в файл:
{"0":0,"userinfo":{"userid":"fari","loginstatus":1,"usernotification":""},"apps":[{"appid":"rt5processor","accounttype":"Admin","status":"6","datestarted":"2019-10-11","usagedata":"1","flagcookiedata":"0","flagstorage":"0","appname":"RTPROCESSOR","version":"1.11.8","appnotification":"","apptype":"extension","updateflag":"0"},{"appid":"rt5sharpen","accounttype":"Admin","status":"6","datestarted":"2019-10-11","usagedata":"1","flagcookiedata":"0","flagstorage":"1","appname":"RTSHARPEN","version":"1.11.8","appnotification":"","apptype":"extension","updateflag":"0"}],"tutorials":[{"appid":"rtp","tutorialurl":"https://www.youtube.com/watch?v=W3cKq7S3qKc","featureonapp":"sharpen3"},{"appid":"rtp","tutorialurl":"https://www.youtube.com/watch?v=fKn5fG3M1m8","featureonapp":"Sharpen"},{"appid":"rtp","tutorialurl":"https://www.youtube.com/watch?v=m9M7J9uMrJk","featureonapp":"sharpen2"}],"misc":{"globalnotification":""}}
Я использовал фиктивные тестовые данные, которые будут заменены. Он возвращается отлично в PS 2017,2018,2019. Он использует CEP 4, но я попробовал CEP 6, и проблема остается. Любая помощь приветствуется.