angularjs cordova base href

前端之家收集整理的这篇文章主要介绍了angularjs cordova base href前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
试图为 angularjs html5网络应用程序设置正确的基本href值以在cordova中工作

最初使用$locationProvider.html5Mode(true)和< base href =“/”>:

> app在普通浏览器中完美运行
> cordova为css / js / templates等提供资源错误
(我相信它在cordova根目录中寻找资源而不是平台根目录?)

在SO和ui-router FAQs上尝试了一些替代方案:

< base href =“.”>使用html5模式,根据this答案:

>资产在cordova中找到了(没有资源错误)
> ui-router进入带有无限循环的尾部旋转和以下错误消息
错误:无法在“历史记录”上执行“pushState”:无法在具有源https://example.com的文档中创建URL为“https:// page /”的历史状态对象

< base href =“./”>使用html5模式:

>在cordova中找到的资产(没有资源错误)
>给了我可怕的错误:达到10 $digest()迭代.中止!信息
尝试使用frankwallis solution提到的here,但没有帮助(相同的错误)

$locationProvider.html5Mode没有基础href({enabled:true,requireBase:false});

>在cordova中找到的资产(没有资源错误)
>页面开始加载自己? …在某些州有两次角度引导?

我的app配置定义如下:

myApp.config(['$locationProvider','$urlRouterProvider','$stateProvider','$stickyStateProvider',function($locationProvider,$urlRouterProvider,$stateProvider,$stickyStateProvider) {

    $locationProvider.html5Mode(true);

    $stateProvider
    .state('root',{            // we define a 'root' state so that we can load some essential data prior to any template being loaded
        url: '',abstract: true,sticky: true,views: {
            'root': {
                template: '<ui-view/>',}
        }
    })
    .state('root.worldmap',{
        url : '/worldmap',templateUrl : 'templates/worldmap.tmpl.html'
    })
    .state('root.faq',{
        url : '/faq',templateUrl : 'templates/faq.tmpl.html'
    })
    .state("otherwise",{
        url: "*path",views: {
            'root': {
                template: "",controller: ['$injector',function($injector) {
                    var $state = $injector.get("$state");
                    $state.go('root.worldmap');
                }]
            }
        },});
    $stickyStateProvider.enableDebug(true);
}]);

有关信息:
使用this method替代cordova deviceready和angular.element bootstrap分别为cordova /浏览器

好的,这样做的方法删除基本href并禁用html5模式:

> [可选]创建&结帐一个名为dev-cordova或类似的新分支

>这允许您在浏览器和设备代码之间快速切换

>删除/评论< base href =“/”>在主index.html
>确保在app.js中禁用html5模式

$locationProvider.html5Mode({
    enabled: false,requireBase: false
});

要么

$locationProvider.html5Mode(false);

不要忘记运行cordova build ios(在你grunt / gulp等之后编译js文件)…这可确保更新cordova / platforms / ios / www目录中的文件.

猜你在找的Angularjs相关文章