加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs cordova base href

发布时间:2020-12-17 08:46:30 所属栏目:安全 来源:网络整理
导读:试图为 angularjs html5网络应用程序设置正确的基本href值以在cordova中工作 最初使用$locationProvider.html5Mode(true)和 base href =“/”: app在普通浏览器中完美运行 cordova为css / js / templates等提供资源错误 (我相信它在cordova根目录中寻找资源
试图为 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目录中的文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读