왜 PhoneGap (Cloud) 패키지 iOS 앱은 항상 iOS에서 기본 스플래시 화면을 표시합니까?
-
21-12-2019 - |
문제
iOS, Android 및 Windows Phone 용으로 포장 된 교차 플랫폼 응용 프로그램을 Sencha Touch 2.3.1-GPL 에서 생성하고 phongap.com을 통해 iOS를 위해 패키지 ( PhoneGap Cloud) . 앱과 응용 프로그램 아이콘은 모든 iOS 장치에서 잘 작동하지만 앱이 실행되면이 기본 PhoneGap 스플래시 화면 가 표시됩니다.
PhoneGap (Cloud) UI에서 옵션을 찾을 수 없습니다 : 앱 스플래시 화면을 선택할 수 있습니다.
이제 내 질문은 다음과 같습니다.
-
여기서 또는 어떻게 내 앱에 맞춤 스플래시 화면을 정의 할 수 있습니까?
-
Sencha Touch App 코드에서 스플래시 화면을 지정해야합니까? 또는 은 PhoneGap (Cloud) UI 어딘가에 추가해야합니까?
여기에 Sencha Touch App.js 코드는 아이콘이나 스플래시 화면을 지정하지 않았습니다. 아이콘이나 스플래시 화면에 대한 이해가 있기 때문에 PhoneGap (Cloud)에 추가해야합니다.
Ext.Loader.setConfig({disableCaching: false});
Ext.application({
name: 'RedmineApp',
views: ['Issue', 'ProjectIssues', 'RedmineIssuesNavigator', 'RedmineTabPanel', 'RedmineChart', 'RedmineChartsNavigator', 'UserInputView', 'RedmineIDChart', 'RedminePriorityChart', 'RedmineTrackerChart', 'RedmineStatusChart', 'IssueHistory'],
models: ['RedmineConfig', 'Issue', 'IssueCategory', 'IssuePriority', 'Project', 'ProjectMembership', 'Tracker', 'User', 'IssueStatus'],
stores: ['RedmineConfigs', 'Projects', 'IssuePriorities', 'IssueStatuses'],
controllers: ['Projects', 'Issues', 'ChartsMenu', 'UserInputFields'],
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('RedmineApp.view.RedmineTabPanel'));
},
projectIdentifier: null,
redmine_url: '',
redmine_access_key: '',
loadRedmineConfig: function() {
var configStore = Ext.getStore('RedmineConfigs');
configStore.load();
var redmine_config = configStore.getAt(0);
if (redmine_config !== undefined) {
this.redmine_url = redmine_config.get('redmine_url');
this.redmine_access_key = redmine_config.get('redmine_access_key');
} else {
this.redmine_url = 'http://redmine.arkhitech.com';
}
},
saveRedmineConfig: function() {
var newRecord = new RedmineApp.model.RedmineConfig({
redmine_url: this.redmine_url,
redmine_access_key: this.redmine_access_key
});
var configStore = Ext.getStore('RedmineConfigs');
configStore.load();
configStore.removeAll();
configStore.add(newRecord);
configStore.sync();
},
setRedmineUrl: function(redmine_url) {
this.redmine_url = redmine_url.replace(/\/$/, '');
this.saveRedmineConfig();
},
getRedmineUrl: function() {
if (this.redmine_url === '') {
this.loadRedmineConfig();
}
return this.redmine_url;
},
redmine_base_path: '',
setRedmineBasePath: function(redmine_base_path) {
this.redmine_base_path = redmine_base_path;
},
getRedmineBasePath: function() {
return this.redmine_base_path;
},
setRedmineAccessKey: function(redmine_access_key) {
this.redmine_access_key = redmine_access_key;
this.saveRedmineConfig();
},
getRedmineAccessKey: function() {
if (this.redmine_access_key === '') {
this.loadRedmineConfig();
}
return this.redmine_access_key;
},
setCurrentProjectIdentifier: function(projectIdentifier) {
this.projectIdentifier = projectIdentifier;
},
getCurrentProjectIdentifier: function() {
return this.projectIdentifier;
},
getCurrentProjectTrackers: function() {
return this.projectTrackersStore;
},
setCurrentProjectTrackers: function(projectTrackersStore) {
this.projectTrackersStore = projectTrackersStore;
},
getCurrentIssuesStore: function() {
return this.createIssuesStore(this.getCurrentProjectIdentifier());
},
getCurrentProjectIssueCategories: function() {
return this.issueCategoriesStore;
},
setCurrentProjectIssueCategories: function(issueCategoriesStore) {
this.issueCategoriesStore = issueCategoriesStore;
},
loadProjectSettings: function(project_id) {
var Project = Ext.ModelManager.getModel('RedmineApp.model.Project');
Project.load(project_id, {
success: function(project) {
RedmineApp.app.setCurrentProjectTrackers(project.trackersStore);
RedmineApp.app.setCurrentProjectIssueCategories(project.issueCategoriesStore);
}
});
},
createIssuesStore: function(projectIdentifier) {
var newStore = Ext.create('Ext.data.Store', {
model: 'RedmineApp.model.Issue',
autoLoad: true,
proxy: {
type: 'dynamicrest',
resourcePath: '/projects/' + projectIdentifier + '/issues',
format: 'json',
reader: {
rootProperty: 'issues',
type: 'json'
}
},
grouper: {
groupFn: function(record) {
return record.get('updated_on');
},
sortProperty: 'updated_on',
direction: 'DESC'
}
});
return newStore;
}
});
. 해결책
sencha touch 앱 코드의 루트 에이 config.xml 파일을 추가하여
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.phonegap.example"
versionCode = "10"
version = "1.0.0" >
<!-- versionCode is optional and Android only -->
<name>Your app name</name>
<description>
Your app description
</description>
<author href="http://www.author.com" email="info@email.com">
Author Name
</author>
<!-- iPhone and iPod touch -->
<gap:splash src="splash/ios/Default.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="splash/ios/Default@2x.png" gap:platform="ios" width="640" height="960" />
<!-- iPhone 5 / iPod Touch (5th Generation) -->
<gap:splash src="splash/ios/Default-568h@2x.png" gap:platform="ios" width="640" height="1136" />
<!-- iPad -->
<gap:splash src="splash/ios/Default-Portrait.png" gap:platform="ios" width="768" height="1024" />
<gap:splash src="splash/ios/Default-Landscape.png" gap:platform="ios" width="1024" height="768" />
<!-- Retina iPad -->
<gap:splash src="splash/ios/Default-Portrait@2x.png" gap:platform="ios" width="1536" height="2048" />
<gap:splash src="splash/ios/Default-Landscape@2x.png" gap:platform="ios" width="2048" height="1536" />
</widget>
.
이 파일을 추가 한 후 PhoneGap (Cloud)은 자체 기본값을 사용하는 대신이 Config.xml 파일에서 이름, 설명 및 시작 화면을 선택합니다.
제휴하지 않습니다 StackOverflow