phoneGap、appCan等 hybrid app请求数据问题

bober
  • 26

抛开性能瓶颈!
本人绝对手机端菜鸟,欲入手hybrid app。

问题描述:
说疑问似乎更恰当些,
phoneGap常用做法是将js\html放在本地。然后通过Ajax(或其他方式)请求数据。
但是,会有跨域问题。 本地test.html的ajax请求Www.domain.com/test接口,应该洗。
那就换成jsonp?好吧,可能解决了。

可是,如果domain.com/test这个接口必须判断登录后才能访问 。这样该怎么做呢?

还有其他方式完成数据请求吗? 应该是怎么个流程呢,谢谢!!!!!
回复
阅读 10.3k
5 个回答

和普通的登录类似,先检查是否登录的cookie,然后再去调用接口。
最好是调用本地的sqlite接口,存储是否登录信息。这样就要写原生的接口调用了。phonegap有接口封装的。

Chener
  • 582

作为一个半只脚踏入门槛的菜鸟,我之前和你有过一样的疑惑。

不幸的是,这个疑惑没有解开,或者说我都不确定这个疑惑是不是真实存在的。

但是,后来发现phone gap做混生更实际的做法应该是:
phonegap只是一个“壳子”,或者说定制的浏览器(只不过提供了手机原生功能的api调用)。然后在里面的web view调用web app,而由于html5的关系,web app的相关html,js,css页面可以缓存在本地。

欢迎拍砖。

update: 自己拍砖并不是在web view里面调用web app, 而是html,js,css等文件被打包成apk,相当于用html在本地模拟实现原生控件(比如phone gap里面通过js接口调用手机原生拍照功能,又如html的表单在手机上打开后就像原生的表单控件等等)。

phonegap这些东西都有一个叫做whitelist的东西。你想太多了。

跨域问题解决我一般是使用自定义的网络请求插件代替传统的ajax。
这样的好处如下:
1、解决了跨域问题。
2、如果你的接口需要签名,则不需要把secret暴露在web中。

坏处如下:
1、session可能会悲剧(除非你的HTTP Client很好的处理了Cookie)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏