我想通过usine在ios6上打开地图,MKMapItem但我也喜欢使用谷歌地图为较旧的ios版本进行后备...
我没有想法在没有BubbleWrap的情况下在rubymtion上执行此操作会导致Device.ios_version返回错误
我想在iOS6上这个:
address_dictionnary = ({kABPersonAddressStreetKey: @party.place.street, kABPersonAddressCityKey: @party.place.city,kABPersonAddressZIPKey: @party.place.postal_code})
place = MKPlacemark.alloc.initWithCoordinate(@coords, addressDictionary: address_dictionnary)
mapItem = MKMapItem.alloc.initWithPlacemark(place)
mapItem.name = "#{@party.name}"
options = ({
MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving
})
mapItem.openInMapsWithLaunchOptions(options)
Run Code Online (Sandbox Code Playgroud)
这在旧版本上:
url = "http://maps.google.com/maps?saddr=#{@party.place.location[1]},#{@party.place.location[0]}&daddr=#{@party.place.location[1]},#{@party.place.location[0]}"
App::open_url(url)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
然后当我做正确的测试时:当我进行测试并在IOS 5.1上运行它时出现此错误
dyld: Symbol not found: _MKLaunchOptionsDirectionsModeDriving
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
if Utils.older_than_ios6?
url = "http://maps.google.com/maps?saddr=#{@party.place.location[1]},#{@party.place.location[0]}&daddr=#{@party.place.location[1]},#{@party.place.location[0]}"
App::open_url(url)
else
address_dictionnary = ({kABPersonAddressStreetKey: @party.place.street, kABPersonAddressCityKey: @party.place.city,kABPersonAddressZIPKey: @party.place.postal_code})
place = MKPlacemark.alloc.initWithCoordinate(@coords, addressDictionary: address_dictionnary)
mapItem = MKMapItem.alloc.initWithPlacemark(place)
mapItem.name = "#{@party.name}"
options = ({
MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving
})
mapItem.openInMapsWithLaunchOptions(options)
end
Run Code Online (Sandbox Code Playgroud)