Я делаю это внутри моего приложения cordova и не имел никаких проблем с обзором магазина приложений ios.
Я использую функцию ajax Jquery для загрузки как javascript, так и файла css с сервера, который я могу изменить без утверждения магазина приложения, а затем я могу вставить эти сценарии после их загрузки при запуске приложения.
Я попытался использовать файл cordova File api, и тогда я сохранил файл локально, но автономная поддержка не важна для меня в данный момент, и ajax JQuery намного проще.
Вот код jquery, который я использую. У меня есть идентификатор пакета, который я использую, чтобы определить, доступен ли новый файл javascript, иначе jQuery ajax кэширует предыдущие запросы, чтобы ускорить время загрузки.
Это решение позволяет вам подмножество вашего кода быть динамическим. У меня все еще есть базовый набор кода, который поставляется вместе с приложением, а также собственный плагин js и собственный код, который нужно будет пройти через магазин приложений. Но это, по крайней мере, позволяет мне исправлять ошибки, не проходя через магазин приложений.
В противном случае, я хотел бы посмотреть на решение, как это: http://docs.build.phonegap.com/en_US/tools_hydration.md.html
function insertScript(version) {
var scriptUrl = "";
try {
// get javascript file...
scriptUrl = mobileWebServiceUrl + "/DynamicContent/Bundles/Scripts/dynamic";
scriptUrl += "_" + bundleVersion.replace(/\./g, "_") + ".js?v=" + version;
console.log("downloading script: " + scriptUrl);
// Allow user to set any option except for dataType, cache, and url
options = {
dataType: "script",
cache: true,
url: scriptUrl
};
// Use $.ajax() since it is more flexible than $.getScript
// Return the jqXHR object so we can chain callbacks
return $.ajax(options).success(function(response) {
console.log("insertScript success");
dynamicContentScriptLoaded = true;
});
} catch (e) {
//console.error(e);
ReportError("problem downloading javscript: " + scriptUrl);
}
}
function insertCSS(version) {
try {
// get css file...
var cssUrl = mobileWebServiceUrl + "/DynamicContent/Bundles/Css/dynamic";
cssUrl += "_" + bundleVersion.replace(/\./g, "_") + ".css?v=" + version;
console.log("downloading dynamic css: " + cssUrl);
$.ajax(cssUrl)
.success(function (response) {
console.log("successfully downloaded dynamic css");
var script = document.createElement("style");
script.type = "text/css";
script.innerHTML = response;
$('head link').each(function() {
if ($(this).attr('href').search('MobileFrame') > -1) {
$("#MobileFrameCSS").before(script);
}
});
dynamicContentCssLoaded = true;
// TODO: implement caching at a later date
//if (isPhoneGap())
// saveFile("DynamicStyles", response);
});
} catch (e) {
ReportError("problem downloading css");
}
}
Возможно, вам понадобится минута или две, чтобы пересмотреть лицензионное соглашение с Программой разработчиков для iOS. То, что вы предлагаете, - это не новая идея, но этого не происходит, потому что это нарушение вашего соглашения с Apple. – sherb
Но я знаю некоторые игры, которые регулярно обновляют обновления. Нарушают ли они это соглашение? – 23tux
* Содержимое * обновления разрешены, но исполняемого кода нет. В некоторых случаях разница между кодом и контентом, который, возможно, размывается. Я не юрист, но, как разработчик, мой единственный совет - действовать осторожно. Удачи! – sherb