起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1817|回复: 6

[处理中3] 代码更改打包地址补充问题

[复制链接]

34

主题

129

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
发表于 2017-12-28 11:16:43 | 显示全部楼层 |阅读模式
上次提出的在代码中更改打包地址,提供的一种跳转方式,如果服务器是公网的确实可以实现,但是如果是有个项目是部署在内网中,通过跳转是访问不到的,研究了几种打包模式,有没有什么方法能让页面一开始不访问服务器打包的地址然后下载各种资源,直接访问本地的一个页面,然后在页面点击按钮更改打包地址,即使改成内网地址也可以正常访问,(通过打包内网地址部署这个项目,然后手机安装是可以正常访问这个项目)

34

主题

129

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2017-12-28 11:48:37 | 显示全部楼层

编译后发现生成的安卓源码的启动页中有这个判断,我猜这应该是获取那个服务器地址的,如何在js代码中更改这部分呢
1.png
回复 支持 反对

使用道具 举报

发表于 2017-12-28 11:49:48 | 显示全部楼层
如果网络访问不到!那就不行了,网络必须能联通才行!!!
首先试试手机系统自带浏览器,访问内网的服务是否正常?、如果正常APP 也没啥问题!如果浏览器访问不到,APP 也没办法了!

资源打包在APP 中的方式!只能是打包的时候指定一个服务上的资源,不能指定多个服务的资源都打包在APP 中!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

34

主题

129

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2017-12-28 13:14:54 | 显示全部楼层
liangyongfei 发表于 2017-12-28 11:49
如果网络访问不到!那就不行了,网络必须能联通才行!!!
首先试试手机系统自带浏览器,访问内网的服务是 ...


假设现在有三个服务器,项目A内网、 项目B公网、项目C公网,如果我分别打包三个地址打出3个安装包,那每个都可以正常访问,如果我以C为模板打包,那么只要我在c部署的代码设置跳转b项目,那么会正常的跳到b项目,如果我想从c项目跳到a项目那是不行的,所以想能不有啥方法在刚启动c项目的时候不访问c所在的服务器,先访问一个本地页面,然后在通过设置原生的load(url)让可以访问到A项目
回复 支持 反对

使用道具 举报

发表于 2017-12-28 14:15:13 | 显示全部楼层
2538402839 发表于 2017-12-28 13:14
假设现在有三个服务器,项目A内网、 项目B公网、项目C公网,如果我分别打包三个地址打出3个安装包,那每 ...

首先,你只有 页面资源,没有 ajax 数据请求吗??(意思是项目A 是一个离线的应用吗??)
如果是这样,那可以模式1打包,打包项目A 的资源,配置默认启动地址为项目A 的地址

这样就可以做到访问A 的时候运行本地资源,访问B 和 C 的时候请求 网络 服务器!

请问同一个手机系统自带浏览器能访问到A吗??如果可以的话,说明网络正常,如果网络正常  公网和内网没差异的


qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

34

主题

129

帖子

343

积分

中级会员

Rank: 3Rank: 3

积分
343
QQ
 楼主| 发表于 2017-12-28 14:34:44 | 显示全部楼层
liangyongfei 发表于 2017-12-28 14:15
首先,你只有 页面资源,没有 ajax 数据请求吗??(意思是项目A 是一个离线的应用吗??)
如果是这样, ...

ABC项目中都有ajax请求,单独打包项目a,在手机中是可以正常访问的,实际上三个项目代码都是相似的差不多,只是需要部署到不同的服务器上,需要部署到各种内网外网不同地址的服务器,每次都打包麻烦所以才想到更改打包地址
模式一是我们对每个服务器上的项目打包访问的流程,模式二是我想实现的模式,也就说不管服务器的tomcat启动没,网络通不通顺,从开始到登录页这一步都要正常走通,所以我想到了在编译后的原生代码中增加一个登录原生页面,修改配置文件将这个页面设置为启动页,点击登录在跳到系统的默认启动页
1.JPG

系统默认启动页应该是这个MainActivity
2.png
启动这个页面后其中有个if判断我猜应该是加载打包地址的,通过webview加载整个部署在服务器的项目(项目部署到内网,只要手机和内网在通一段ip也是能访问的)
3.png
我觉得通过我做的原始登录页然后获取我想修改的地址放到load(url)中,这样应该可以满足,但是,项目本来的登录是有ajax请求的,获取用户登录信息,如果我在原生页面中加的登录那么这里肯定不能走ajax,即使走原生其他的请求方法,获得了用户数据后我也没法在load(url)跳到新的项目中获取这个登录的信息数据
回复 支持 反对

使用道具 举报

发表于 2017-12-28 15:05:01 | 显示全部楼层
2538402839 发表于 2017-12-28 14:34
ABC项目中都有ajax请求,单独打包项目a,在手机中是可以正常访问的,实际上三个项目代码都是相似的差不多 ...

如果要登录,就必须有网络才行!只有模式1才能访问离线页面~!
如果你想修改原生,应该是原生代码判断网络是否正常??如果正常就直接跳转页面,如果不正常,就提示用户必须连接网络才能进入, 否则就不进入欢迎页,或者 退出  这样也行吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-23 06:17 , Processed in 0.057210 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表