app介面地址靈活配置怎麼實現
A. 安卓手機app怎麼實現qq第三方登錄介面
申請APPID
進入QQ互聯的官網
在管理中心中創建移動應用。
導入Jar包
將下載得到的Jar包導入工程,並在AndroidManifest.xml文件中進行注冊。
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100546930" />
</intent-filter>
</activity>
其中,<data android:scheme="tencent100546930" />中的數字需要替換成自己申請得到的APPID。
創建登錄介面
所有的SDK介面調用,都會傳入一個回調,用以接收SDK返回的調用結果。回調的主要介面有兩種:
(1)IUiListener:調用SDK已經封裝好的介面時,例如:登錄、快速支付登錄、應用分享、應用邀請等介面。
(2)IRequestListener:使用requestAsync、request等通用方法調用sdk未封裝的介面時,例如上傳圖片、查看相冊等。
在這里創建IUiListener介面實現相應的登錄授權操作:
private void onClickLogin() {
if (!mTencent.isSessionValid()) {
IUiListener listener = new IUiListener() {
/** 授權失敗的回調*/
@Override
public void onError(UiError arg0) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "授權失敗", 1000).show();
Message msg = new Message();
msg.arg1 = 2;
handler.sendMessage(msg);
}
/** 授權成功的回調*/
@Override
public void onComplete(JSONObject arg0) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "授權成功", 1000).show();
Message msg = new Message();
msg.what = 2;
msg.arg1 = 1;
msg.obj = arg0;
handler.sendMessage(msg);
}
/** 取消授權的回調*/
@Override
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "取消授權", 1000).show();
Message msg = new Message();
msg.arg1 = 3;
handler.sendMessage(msg);
}
};
mTencent.login(this, SCOPE, listener);
} else {
mTencent.logout(this);
}
}
其中,mTencent為QQSDK主要實現類Tencent類的實例。
// Tencent類是SDK的主要實現類,開發者可通過Tencent類訪問騰訊開放的OpenAPI。
// 其中APP_ID是分配給第三方應用的appid,類型為String。
mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext());
將handler進行實例化
handler = new Handler(this);
並將類實現Callback介面,即可對上述類進行Handler的處理操作。
@Override
public boolean handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.arg1) {
case 1: { // 成功
JSONObject object = (JSONObject) msg.obj;
try {
openid = object.getString("openid").toString();
sBuilder.append("openid為:"+openid+"
");
access_token = object.getString("access_token").toString();
url = url + "?access_token="+access_token+"&oauth_consumer_key="+APP_ID+
"&openid="+openid+"&format=json";
new MyUrlThread(url.toString(), 2,sHandler).start();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break;
case 2: { // 失敗
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
return false;
}
case 3: { // 取消
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
return false;
}
}
return false;
}
如果授權成功,即可得到返回的Openid。
從而,可以根據Openid調用騰訊所提供的官方介面,實現需要的操作。
B. 如何利用postman做app介面測試
1、在Google已安裝完成的介面測試工具的postman的程序之後,點擊進入桌面的chrome應用啟動器。
C. App 和 Web 的通用介面該怎麼設計
1、在介面定義中確定MVC的GET或者POST方式
由於我們整個Web API平台是基於MVC的基礎上進行的API開發,因此整個Web API的介面,在定義的時候,一般需要顯示來聲明介面是[HttpGet]或者[HttpPost],雖然有些介面也可以不用聲明,但是避免出現類似下面的錯誤信息,顯式聲明還是有好處的。
請求的資源不支持 http 方法「POST
例如在基類定義的查找對象介面如下所示。
/// <summary>
/// 查詢資料庫,檢查是否存在指定ID的對象
/// </summary>
/// <param name="id">對象的ID值</param>
/// <returns>存在則返回指定的對象,否則返回Null</returns>
[HttpGet]
public virtual T FindByID(string id, string token)
如果是增刪改的介面,一般需要聲明為POST方式提交數據,而且基於安全性的考慮,需要攜帶更多的參數。
/// <summary>
/// 插入指定對象到資料庫中
/// </summary>
/// <param name="info">指定的對象</param>
/// <returns>執行操作是否成功。</returns>
[HttpPost]
public virtual CommonResult Insert(T info, string token, string signature, string timestamp, string nonce, string appid)
2、動態對象的介面定義
在一般的Web API介面裡面,我們可能都會碰到很多簡單類型的參數,但是又想讓它們以POST方式提交數據,那麼我們就可以有兩種方法來處理,一種是定義一個類來放置這些參數,一種是採用動態的JObject參數,前者有很多不方便的地方,因為我們不可能為每個介面參數定義多一個實體類,這樣可能會有很多難以管理的類定義。如下面是微信API的調用介面案例,我們也需要設置這樣的處理規則。
介面調用請求說明
http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
POST數據格式:json
POST數據例子:{"group":{"id":108,"name":"test2_modify2"}}
那麼我們採用JObject是這么樣的呢,我們來看介面的定義和處理代碼。JObject是Newtonsoft.Json.Linq命名空間下的一個對象。
/// <summary>
/// 修改用戶密碼
/// </summary>
/// <param name="param">包含userName和userPassword的復合對象</param>
/// <param name="token">用戶訪問令牌</param>
/// <returns></returns>
[HttpPost]
public CommonResult ModifyPassword(JObject param, string token)
{
//令牌檢查,不通過則拋出異常
CheckResult checkResult = CheckToken(token);
dynamic obj = param;
if (obj != null)
{
string userName = obj.userName;
string userPassword = obj.userPassword;
bool success = BLLFactory<User>.Instance.ModifyPassword(userName, userPassword);
return new CommonResult(success);
}
else
{
throw new MyApiException("傳遞參數出現錯誤");
}
}
其中我們把JObject對象轉換為我們所需要的對象的時候,因為我們沒有定義具體的實體類,因此採用了dynamic語法,聲明這是一個動態對象,由運行時獲取對應的屬性。
dynamic obj = param;
這樣我們就可以在調用的時候,動態POST對應的JSON對象給Web API介面,而不需要預先定義各種介面參數的類了。
/// <summary>
/// 調用Web API介面,修改用戶密碼
/// </summary>
/// <param name="userName">用戶名稱</param>
/// <param name="userPassword">修改的密碼</param>
/// <returns>如果修改成功返回true,否則返回false</returns>
public bool ModifyPassword(string userName, string userPassword)
{
var action = "ModifyPassword";
var postData = new
{
userName = userName,
userPassword = userPassword
}.ToJson();
string url = GetTokenUrl(action);
CommonResult result = JsonHelper<CommonResult>.ConvertJson(url, postData);
return (result != null) ? result.Success : false;
}
其中GetTokenUrl是根據token和API的地址等參數,構建一個完整的提交地址。我們在上面代碼通過
var postData = new
{
userName = userName,
userPassword = userPassword
}.ToJson();
就可以動態創建一個對象,並生成它的JSON字元串,把數據POST提交到對應的API介面裡面即可,然後對結果進行對象的轉換就算完成了。
3、集合和分頁的處理
在很多介面裡面,我們都需要用到分頁的處理,Web API也不例外,這樣可以提交數據檢索效率,減少伺服器數據處理的壓力,同時也提交客戶端的數據顯示速度。
一般的集合介面定義如下所示(通用性基類介面)。
/// <summary>
/// 返回資料庫所有的對象集合
/// </summary>
/// <returns>指定對象的集合</returns>
[HttpGet]
public virtual List<T> GetAll(string token)
{
//檢查用戶是否有許可權,否則拋出MyDenyAccessException異常
base.CheckAuthorized(AuthorizeKey.ListKey, token);
List<T> list = baseBLL.GetAll();
return list;
}
但是這樣的返回記錄會比較多,一般情況下需要分頁,那麼分頁的處理介面定義如下所示。
/// <summary>
/// 根據條件查詢資料庫,並返回對象集合(用於分頁數據顯示)
/// </summary>
/// <returns>指定對象的集合</returns>
[HttpPost]
public virtual PagedList<T> FindWithPager(string condition, PagerInfo pagerInfo, string token)
分頁介面,在這里返回的結果裡面,用了一個PageList的泛型類,這個方便我們獲取當前的記錄及總數,它的定義如下所示。
/// <summary>
/// 分頁集合
/// </summary>
/// <typeparam name="T">對象</typeparam>
public class PagedList<T>
{
/// <summary>
/// 返回記錄的總數
/// </summary>
public int total_count { get; set; }
/// <summary>
/// 列表集合
/// </summary>
public List<T> list { get; set; }
}
最後整個分頁的處理Web API介面實現如下所示。
/// <summary>
/// 根據條件查詢資料庫,並返回對象集合(用於分頁數據顯示)
/// </summary>
/// <returns>指定對象的集合</returns>
[HttpPost]
public virtual PagedList<T> FindWithPager(string condition, PagerInfo pagerInfo, string token)
{
//檢查用戶是否有許可權,否則拋出MyDenyAccessException異常
base.CheckAuthorized(AuthorizeKey.ListKey, token);
List<T> list = baseBLL.FindWithPager(condition, pagerInfo);
//構造成Json的格式傳遞
var result = new PagedList<T>() { total_count = pagerInfo.RecordCount, list = list };
return result;
}
最後客戶端調用分頁的Web API代碼如下所示。
/// <summary>
/// 根據條件查詢資料庫,並返回對象集合(用於分頁數據顯示)
/// </summary>
/// <param name="condition">查詢的條件</param>
/// <param name="pagerInfo">分頁實體</param>
/// <returns>指定對象的集合</returns>
public virtual List<T> FindWithPager(string condition, ref PagerInfo pagerInfo)
{
var action = "FindWithPager";
string url = GetTokenUrl(action) + string.Format("&condition={0}", condition);
var postData = pagerInfo.ToJson();
List<T> result = new List<T>();
PagedList<T> list = JsonHelper<PagedList<T>>.ConvertJson(url, postData);
if (list != null)
{
pagerInfo.RecordCount = list.total_count;//修改總記錄數
result = list.list;
}
return result;
}
4、混合框架界面整合Web API介面
在整個Web API的平台構建以及在混合框架的整合過程中,我把各個模塊還是遵循相對獨立的方式進行開發和整合,它們實現了從直接訪問資料庫、以WCF服務獲取數據,以及通過WebAPI調用方式獲取數據幾種方式的統一,從而實現了整個混合框架的高度整合。
整個混合框架的核心是以相對獨立的方式,整合各個可重用的模塊,我們可以遵循一定的基礎上,快速構建統一的應用平台。
搭建完畢的整個WebAPI平台,其中包括了服務端內容,以API控制器的方式,發布了對應的Web API介面。
在每個混合框架的獨立模塊裡面,我們封裝了對應的Web API客戶端調用處理,從而實現了Web API的調用方式。
在Win10下,使用Web API模式運行混合框架,獲得的主體界面效果如下所示。
獨立模塊許可權管理系統界面如下所示。
系列文章如下所示:
Web API應用架構在Winform混合框架中的應用(1)
Web API應用架構在Winform混合框架中的應用(2)--自定義異常結果的處理
Web API介面設計經驗總結
Web API應用架構在Winform混合框架中的應用(3)--Winfrom界面調用WebAPI的過程分解
Web API應用架構在Winform混合框架中的應用(4)--利用代碼生成工具快速開發整套應用
Web API應用架構在Winform混合框架中的應用(5)--系統級別字典和公司級別字典並存的處理方式
D. 怎麼獲取app的調用後台的介面地址
獲取app的調用後台借口地址步驟如下所示:
手機安上 Fiddler 的根證書,Fiddler打開自動解密HTTPS, 然後就跟抓HTTP一樣!
E. java該如何實現:根據APP的不同版本調用不同的介面服務。
可以在所有因版本不同的業務邏輯層,註解service時,區分將版本號和service做關聯,根據app傳的版本號注入對應版本的service即可
F. APP開發流程有哪些
APP開發流程大概如下:
1.idea
形成一個APP項目的最初首先要確定項目整體方案,整個項目的規劃,大體框架,做成文檔展現出來,以便大家提意見和更好的改進。也就是說首先要確立產品原型,進入項目評估階段。經過反復確認,最終形成產品腦圖(axure軟體)和完整的需求文檔。
2.功能設計
確定開發APP的需求,對APP進行定位,將項目的整體情況盡量細化,確保APP開發項目能能夠在規定期限完成。需求功能的確定,細化,給出精準的項目方案,是進行運行的基礎。
3.預算評估
確認需求分析後,技術團隊會評估功能需求技術難度,設計需求可行性,確認開發進度即時間安排,當然,需求文檔的完整且有質量的建立也是非常有必要的,因為對人力和時間的投入,還有其投入預算有關鍵作用,另外,這份文檔後期也會有助於產品經理等技術開發人員對項目的理解,減少技術人員溝通之間的誤差
4.測試
把大概的界面和功能連接後,App開發的大致demo就出來了,demo自己試用和體驗幾遍後,根據實際情況修改,沒有大錯誤後,新版本可以嘗試尋找beta用戶, 根據測試用戶的反饋,改進並反復測試。用戶測試階段一定要把每個用戶的意見考慮進去,不一定每個意見都會採納,但是不要放過一點瑕疵,盡全力讓自己的作品更好。
5.完成
在產品經過多次測試,修改bug確認無誤後。一個App開發製作項目就完成,可以進入個大市場,投放使用。市場推廣也是比較關鍵的一步,在各大市場中,開發者就要通過各種方式推廣自己的App產品,力求App在市場上獲得更多的下載量,吸引更多的用戶!原生態定製開發APP;
6.維護推廣
成功上線後的APP就可以通過企業自身的運營推廣,發展用戶數量,讓它在行業中脫穎而出。當然如果後期存在BUG,或者更新可以提供後續服務的。在運營推廣中不斷與時俱進,維護更新,APP才能長存。
G. 如何做類這樣的app網站介面到底是怎實現的
webview是顯示網頁的URL返回的HTML的數據,要想將數據保存到手機就需要定義這么一個介面老返回定義好數據,目前主流的數據格式有JSON和XML。
H. APP消息推送安卓介面實現
極光推送能實現Android API統一推送服務標准介面,統一推送服務(Unified Push Service,簡稱UPS)技術標准,旨在為國內的消息推送服務建立統一的標准,為終端用戶提供更好的手機使用體驗,為應用開發者更好的解決消息推送需求。從 JPush 3.5.8 版本開始,新增 cn.jpush.android.ups.JPushUPSManager 類,該類提供符合 UPS 標準的介面。jpush推送消息形式主要有四種:通知,自定義消息,富媒體和本地通知。
極光推送,也叫jpush。JPush是經過考驗的大規模APP推送平台,每天推送消息數超過5億條。 開發者集成SDK後,可以通過調用API推送消息。同時,JPush提供可視化的web端控制台發送通知,統計分析推送效果。 JPush全面支持 Android, iOS, Winphone 三大手機平台。
I. 怎麼寫 App 介面設計方案
編寫介面設計方案頭部必定是目錄,要是在目錄和正文中間插入本方案總設計師姓名和他的手機郵件等聯系方式方便雙方項目上對接自是極好的
一闡述面向的用戶群和平台有哪些;
二要達到怎樣的設計目標,如並發量,延遲等;
三設計的系統介面可能會有哪些問題和風險,基於以上,在進行設計過程中將會採用那些技術手段;
四是闡述一些介面命名規范,欄位和數據長度限制規范,最大連接時間等;
在後面概述介面按業務或非業務分為哪幾大塊,訂單一塊,賬戶管理一塊,日誌一塊,文件/圖片一塊;
接下來詳述每塊分別有哪些介面,具體如何定義的等等;
最後在闡述下整個系統與哪些第三方會有交集,這些介面提供方的公司名字?與這些公司的技術聯系人是誰,聯系方式是什麼,與他們的數據通信方式是什麼,他們的訪問地址在何處,經過一系列測試後發現的延遲情況,安全問題等等,我方是如何解決的,在本次設計的介面中有哪些用到了這個第三方介面;
J. java 怎麼開發手機app介面
介面返回json 或 xml 就可以了,然後你開發的當然是知道介面的url了,還有介面的傳參,這樣就可以讓前端調用了。
告訴前端,你的url地址,需要給這個介面傳什麼參數,返回參數是什麼(返回他們可以測試得到,不過最好還是先告訴他們),欄位說明,這樣就可以交互了,
springMVC 可以在controller 方法加個註解@ResponseBody 當你返回java對象的時候,jackson會轉為json給到前端