2017-04-27 72 views
0

任何人都可以解釋如何或指導我的教程,詳細解釋如何將Rails 5 API連接到Phonegap。我對Rails比較陌生,沒有phonegap方面的經驗,現在已經在尋找幾天瞭解詳情。我在前端使用了HTML5,CSS和JQuery。Rails 5 API和Phonegap

真的很感謝任何幫助。

<?xml version='1.0' encoding='utf-8'?> 
<widget id="com.yourname.workshop" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
    <name>Workshop</name> 
    <description> 
     A sample Apache Cordova application that responds to the deviceready event. 
    </description> 
    <author email="[email protected]" href="http://cordova.io"> 
     Apache Cordova Team 
    </author> 
    <content src="http://localhost:3001" /> 
    <plugin name="cordova-plugin-whitelist" spec="1" /> 
    <access origin="*" /> 
    <allow-intent href="http://*/*" /> 
    <allow-intent href="https://*/*" /> 
    <allow-intent href="tel:*" /> 
    <allow-intent href="sms:*" /> 
    <allow-intent href="mailto:*" /> 
    <allow-intent href="geo:*" /> 
    <platform name="android"> 
     <allow-intent href="market:*" /> 
    </platform> 
    <platform name="ios"> 
     <allow-intent href="itms:*" /> 
     <allow-intent href="itms-apps:*" /> 
    </platform> 
</widget> 

回答

2

將您在Phonegap中編寫的前端應用程序與後端Rails API「連接」的方式是使用HTTP請求。

Rails has an official guide for writing API-only applications.您的應用程序不必只提供API,但它需要提供一些易於解析的數據。 (通常爲JSON)

然後,您在前端使用庫向後端API定義的特定端點發出請求。然後,您可以解析答案,以便做出您需要做的任何事情。 jQuery makes it easy to make requests.

在Rails中,讓我們想象一下,我有一個控制器,允許您在一些博客或其他內容的帖子上進行常見的CRUD操作。這可能是這樣的:

class PostsController < ApplicationController 
    responds_to :json 

    def show 
    @post = Post.find(params[:id]) 
    respond_with(@post) 
    end 

    def index 
    @posts = Post.all 
    respond_with(@posts) 
    end 

    def create 
    @post = Post.create(params[:post]) 
    respond_with(@post) 
    end 

    def update 
    @post = Post.find(params[:id]) 
    @post.update_attributes(params[:post]) 
    respond_with(@post) 
    end 
end 

現在,您可以發出HTTP請求從JavaScript這些動作(或其他任何東西,對這個問題):

$.get('/posts', {}, function(response){ 
    // response here is the data returned by the Post#index action 
}) 

$.post('/posts', {post: {content: "post content"}}, function(response){ 
    // response here is the data returned by the Post#create action 
}) 

這是一個非常簡單的例子,但大多數網絡應用程序只是這個概念的一些變體。

+0

非常感謝!特別是幫助的例子。所以理解所有這些 - 可能是一個愚蠢的問題,但是我在開發過程中如何將控制器/服務器連接到phonegap?我在上面的編輯中插入了我的config.xml文件。我添加的'localhost'這行是否有訣竅? – dgreen22

+0

我從來沒有使用phonegap,所以我不能肯定地說。但是,如果這爲所有請求設置了域,那麼它應該可以工作 – Brennan