我正在开发使用离子的混合应用程序。我使用由vagrant(Virtual Box)运行的Ionic Box。我也使用Genymotion作为模拟器。
在我的应用程序中,我使用Google OAuth2进行身份验证。配置需要一个重定向url回调,它为开发环境设置为http://www.example.com/auth/google/callback
。如果我设置了IP地址,则会收到以下错误:Error: invalid_request device_id and device_name are required for private IP
在genymotion浏览器中,我可以使用http://10.0.3.2:8100
访问我的应用程序。因此,我希望在输入http://10.0.3.2:8100
时能够访问http://www.example.com:8100
。
Access host from Genymotion emulator
如何在Genymotion中创建该映射?
Vagrant Box:
vagrant@ionic-android:/project$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:f9:58:8e
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef9:588e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2459 errors:0 dropped:0 overruns:0 frame:0
TX packets:3188 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:196630 (196.6 KB) TX bytes:4896919 (4.8 MB)
Genymotion Emulation正在192.168.56.101
上运行。
答案 0 :(得分:1)
解决方案是在/etc/hosts
中添加一个条目。
vagrant@ionic-android:/project$ adb pull /system/etc/hosts
192.168.0.1 www.example.com
vagrant@ionic-android:/project$ adb shell
root@vbox86p:/ # mount -o rw,remount /system
root@vbox86p:/ # exit
Read only file system on Android
vagrant@ionic-android:/project$ adb push hosts /system/etc