Android 为什么不是';我的爱奥尼亚模式在安卓4.4设备上打开了吗?
我使用的是安卓设备的离子框架(当然是cordova)。有一个模式,我正在使用的设置和东西,它打开良好的桌面浏览器与Android 为什么不是';我的爱奥尼亚模式在安卓4.4设备上打开了吗?,android,cordova,webview,ionic-framework,angular-ui,Android,Cordova,Webview,Ionic Framework,Angular Ui,我使用的是安卓设备的离子框架(当然是cordova)。有一个模式,我正在使用的设置和东西,它打开良好的桌面浏览器与 `inic serve` 但是,在构建之后 cordova build android或ionic build android 它不会再次打开,不仅在真正的android设备中,而且在桌面浏览器中 代码如下: 对于html视图: <ion-modal-view> <ion-header-bar> <h1 class="title">
`inic serve`
但是,在构建之后
cordova build android
或ionic build android
它不会再次打开,不仅在真正的android设备中,而且在桌面浏览器中
代码如下:
对于html视图:
<ion-modal-view>
<ion-header-bar>
<h1 class="title">Settings</h1>
<div class="buttons">
<button class="button button-clear" ng-click="hideModal()">Done</button>
</div>
</ion-header-bar>
<ion-content class="padding">
<form name="settingsForm" novalidate>
<ion-item class="item-input">
<label class="input-label">IP Address</label>
<input type="text" ng-model="vm.ipAddress" name="ipAddr" required />
</ion-item>
<ion-item class="item-input">
<label class="input-label">Port Number</label>
<input type="text" ng-model="vm.portNum" name="portNum" required />
</ion-item>
<a class="button button-block button-positive" ng-click="vm.startCommand()"
ng-disabled="settingsForm.ipAddr.$invalid || settingsForm.portNum.$invalid && !vm.isListening">{{vm.btnString}}</a>
</form>
<br />
<ion-list>
<ion-item class="item-divider">Messages from socket ws://{{vm.ipAddress}}:{{vm.portNum}} -></ion-item>
<ion-item class="item-text-wrap" ng-repeat="msg in vm.msgs">{{msg}}</ion-item>
</ion-list>
</ion-content>
</ion-modal-view>
设置
多恩
IP地址
端口号
{{vm.btnString}}
来自套接字ws://{{vm.ipAddress}}:{{vm.portNum}}的消息->
{{msg}}
对于控制器:
/// <reference path="../_reference.ts" />
module app.settings {
interface IModelScope extends angular.IScope {
model: Ionic.IModal;
showModal(): void;
hideModal(): void;
}
interface ISettingsCtrl {
ipAddress: string;
portNum: number;
msgs: string[];
btnString: string;
startCommand(): void;
}
class SettingsCtrl implements ISettingsCtrl {
ipAddress: string;
portNum: number;
msgs: string[] = [];
btnString: string = 'Start';
private _gotDirective: boolean;
private _isListening: boolean = false;
static $inject = ['$scope', 'SocketSvc', '$ionicPopup', '$ionicModal', '$ionicLoading'];
constructor(private _scope: IModelScope,
private _socketSvc: app.service.ISocketSvc,
private _ionicPopup: Ionic.IPopup,
private _ionicModel: Ionic.IModal,
private _ionicLoading: Ionic.ILoading) {
_ionicModel.fromTemplateUrl('../../settings/settings.html', {
scope: _scope,
animation: 'slide-in-up'
}).then(m => {
_scope.model = m;
});
_scope.showModal = () => {
_scope.model.show();
}
_scope.hideModal = () => {
_scope.model.hide();
}
}
angular.module('app')
.controller('SettingsCtrl', SettingsCtrl);
}
//
模块应用程序设置{
接口IModelScope扩展angular.IScope{
模型:离子型伊莫代尔;
showModal():void;
hideModal():void;
}
接口设置SCTRL{
IP地址:字符串;
portNum:数字;
msgs:string[];
btnString:字符串;
startCommand():无效;
}
类设置SCTRL实现ISettingsCtrl{
IP地址:字符串;
portNum:数字;
msgs:string[]=[];
btnString:string='Start';
private _got指令:布尔;
private _isListening:boolean=false;
静态$inject=['$scope','SocketSvc','$ionicPopup','$IonicModel','$ionicLoading'];
构造函数(专用范围:IModelScope,
私有_socketSvc:app.service.ISocketSvc,
private _ionicPopup:Ionic.IPopup,
private _Ionic模型:Ionic.IModal,
专用离子加载:离子加载){
_ionicModel.fromTemplateUrl('../../settings/settings.html'{
范围:_范围,
动画:“向上滑动”
}).然后(m=>{
_scope.model=m;
});
_scope.showmodel=()=>{
_scope.model.show();
}
_scope.hideModal=()=>{
_scope.model.hide();
}
}
角度。模块('app')
.控制器(“设置SCTRL”,设置SCTRL);
}
是的,我使用的是typescript@GuillemVicens嗯,事实证明,ionic framework starter为您提供了一个很好的起点,但对cordova不够友好。在ionic项目中,我将我的settings.html放在
/www/settings/settings.html
和settings.ctrl.ts
/www/scripts/settings/settings.ctrl.ts
所以我用
_ionicModel.fromTemplateUrl('../../settings/settings.html', {
scope: _scope,
animation: 'slide-in-up'
}
尝试指定模态的模板。但是在cordova中,它打包了所有
www
进入
资产/www
巫婆应该很好,因为它仍然拥有所有的等级制度(事实证明不是这样)
所有脚本都会在
/assets/www
目录,所以如果您切换
。/../settings/settings.html
进入/settings/settings.html
它会很好用的
对于没有太多时间的用户,脚本在浏览器中运行,就在它自己的目录下,但在android中,它运行在
/www/
目录下,因此请确保使用正确的相对寻址。您能指定什么意思不会再次打开吗?您看到任何错误吗?您是否尝试使用verbose标志进行构建(cordova-d build android
)?@GuillemVicens我找到了答案,请参见下面的答案。谢谢你的答案。很高兴你找到了。别忘了接受你自己的答案,这样其他人可以很快看到你的问题有了答案。:-)