㈠ wow插件代碼問題

修改種族
改種族為XX .race XX
比如改人回類就答 .race 1
1 -- Human
2 -- Orc
3 -- Dwarf
4 -- Night Elf
5 -- Undead
6 -- Tauren
7 -- Gnome
8 -- Troll
9 -- Goblin
10 -- Blood Elf
11 -- Draenie
22 -- Worgen
24 -- Pandaren

㈡ phonegap 什麼插件能打電話

最近採用phonegap做一個APP,需要在應用內實現撥打電話,通話結束後能反饋通話相關狀態,查看了一番phonegap官方文檔,似乎沒有跟電話相關的api,在互聯網上也大概搜了一下,好像沒找到相關的內容。其實html5是支持直接在網頁上撥打電話的,只要加入如下html代碼即可:
[html] view plain
打電話<a href="tel:10086" >移動客服</a>
發簡訊<a href="sms:10086" >發簡訊</a>

但這中方式只能實現撥打電話和發送簡訊,不能反饋結果,比如我想在應用能實現撥打電話,通話結束後自動保存通話的電話號碼、通話時間、時長等,默認的html功能就不能滿足了。
phonegap官方不提供的功能,我們只有自己通過開發插件了實現了
下面我們通過代碼來簡單介紹下phonegap插件開發步驟:
一、定義JS插件API
[javascript] view plain
var Phone = function() {
};
Phone.prototype.call = function (successCallback, failureCallback,number) {
cordova.exec(successCallback, failureCallback, "Phone", "call", [number]);
};
window.Phone = new Phone();

上面的代碼我們定義了一個Phone插件,插件有一個call API,我們傳入
[javascript] view plain
successCallback
failureCallback
分別做為電話撥打成功和失敗的回調函數
傳入
[javascript] view plain
number
做為電話號碼
在方法裏邊調用
phonegap的cordova.exec()
[javascript] view plain
cordova.exec(successCallback, failureCallback, "Phone", "call", [number]);

就是在這個方法裏將執行到native端的功能調用
最後我們new一個Phone對象,把他附件到window對象上,方便以後調用。
這樣,插件的JS代碼完成。
二、native端代碼(以android平台為例)
先直接上代碼
[java] view plain
package com.juhuibao.PhoneGapPlugin;
import java.util.Date;
import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.apache.cordova.api.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.provider.CallLog.Calls;
import android.telephony.PhoneNumberUtils;
public class Phone extends CordovaPlugin {
private static final int PHONE_CALL = 0; // 撥打電話
private static final int PHONE_ABORT = 1; // 掛斷電話
private Date start_time;
private CallbackContext callbackContext;
private String phonenumber;
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
try{
this.callbackContext = callbackContext;
if ("call".equals(action)) {
this.phonenumber=args.getString(0);
this.call(args.getString(0),callbackContext);
return true;
}
if ("abort".equals(action)) {
this.abort(callbackContext);
return true;
}
return false;
}
catch(Exception e){
callbackContext.error(e.getMessage());
}
return false;
}
//撥打電話
private void call(String phonenumber, CallbackContext callbackContext) {
if (phonenumber != null && phonenumber.length() > 0) {
if(PhoneNumberUtils.isGlobalPhoneNumber(phonenumber)){
Intent i = new Intent();
i.setAction(Intent.ACTION_CALL);
i.setData(Uri.parse("tel:"+phonenumber));
start_time=new Date();
this.cordova.startActivityForResult(this, i,PHONE_CALL);
}
else{
callbackContext.error(phonenumber+"不是有效的電話號碼。");
}
} else {
callbackContext.error("電話號碼不能為空.");
}
}
//中斷電話
private void abort(CallbackContext callbackContext) {
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
Date end_time=new Date();
if (resultCode == Activity.RESULT_OK) {
if (requestCode == PHONE_CALL) {
this.callbackContext.error("未知狀態");
}
}
else if (resultCode == Activity.RESULT_CANCELED) {
try{
if (requestCode == PHONE_CALL) {
long ration=GetLastCallDuration();
PhoneResult result=new PhoneResult();
result.setNumber(Phone.this.phonenumber);
result.setStartTime(Phone.this.start_time);
result.setEndTime(end_time);
result.setDuration(ration);
this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result.toJSONObject()));
}
}
catch(Exception e){
this.callbackContext.error(e.getMessage());
}
}
else {
this.callbackContext.error("其他錯誤!");
}
}
long delayTime=0;
long timeOut=2000;
long GetLastCallDuration() throws InterruptedException{
Activity activity = this.cordova.getActivity();
Cursor cursor = activity.getContentResolver().query(Calls.CONTENT_URI,
new String[] {Calls.NUMBER,Calls.DATE, Calls.DURATION, Calls.TYPE, Calls.DATE },
"number=?and type=?",
new String[]{this.phonenumber,"2"},
Calls.DEFAULT_SORT_ORDER);
activity.startManagingCursor(cursor);
boolean hasRecord = cursor.moveToFirst();
if (hasRecord) {
long endTime=cursor.getLong(cursor.getColumnIndex(Calls.DATE));
Date date = new Date(endTime);
long ration = cursor.getLong(cursor.getColumnIndex(Calls.DURATION));
long dif=this.start_time.getTime()-date.getTime();
long second=dif/1000;
if(second<2&&second>-2){
return ration;
}else{
if(delayTime>=timeOut){
return 0;
}
Thread.sleep(200);
delayTime+=200;
return GetLastCallDuration();
}
}else{
if(delayTime>=timeOut){
return 0;
}
Thread.sleep(200);
delayTime+=200;
return GetLastCallDuration();
}
}
}
然後調用具體實現撥打電話功能的方法call方法,在call方法內我們首先判斷電話號碼合法性,不合法直接調用callbackContext.error("不是有效的電話號碼。"),這個方法將觸發JS端的error回調函數執行,並傳入一個字元串參數,比如以上的failureCallback
如果電話號碼合法則彈出呼叫界面,如下代碼
[java] view plain
if(PhoneNumberUtils.isGlobalPhoneNumber(phonenumber)){
Intent i = new Intent();
i.setAction(Intent.ACTION_CALL);
i.setData(Uri.parse("tel:"+phonenumber));
start_time=new Date();
this.cordova.startActivityForResult(this, i,PHONE_CALL);
}
else{
callbackContext.error(phonenumber+"不是有效的電話號碼。");
}

在代碼中我們通過變數start_time記錄開始時間,然後使用this.cordova.startActivityForResult(this, i,PHONE_CALL);啟動Activity。
在終止撥號或掛斷電話時將執行onActivityResult方法,我們將在此方法內實現通話狀態信息的反饋。主要看一下這段代碼
[java] view plain
else if (resultCode == Activity.RESULT_CANCELED) {
try{
if (requestCode == PHONE_CALL) {
long ration=GetLastCallDuration();
PhoneResult result=new PhoneResult();
result.setNumber(Phone.this.phonenumber);
result.setStartTime(Phone.this.start_time);
result.setEndTime(end_time);
result.setDuration(ration);
this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result.toJSONObject()));
}
}
catch(Exception e){
this.callbackContext.error(e.getMessage());
}
}
不管電話有沒有接通,resultCode總是等於Activity.RESULT_CANCELED。
我們通過GetLastCallDuration()方法獲得通話時長,原理就是讀取通話記錄裏邊的ration欄位,由於通話剛結束時通話記錄可能還沒出現記錄,所以我們要反復調用該方法,直到有記錄或到超時時間為止。
取得了時長我們通過this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result.toJSONObject()));把結果反饋給JS端。
附 PhoneResult.java
[java] view plain
package com.juhuibao.PhoneGapPlugin;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;
public class PhoneResult {
private String number = "";
private Date startTime;
private Date endTime;;
private long ration = 0;
public JSONObject toJSONObject() throws JSONException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:S");
return new JSONObject(
"{number:" + JSONObject.quote(number) +
",startTime:" + JSONObject.quote(sdf.format(startTime)) +
",endTime:" + JSONObject.quote(sdf.format(endTime)) +
",ration:" + ration + "}");
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public long getDuration() {
return ration;
}
public void setDuration(long ration) {
this.ration = ration;
}
}

這樣native端的代碼完成。
三、客戶端調用
[javascript] view plain
window.Phone.call(function (obj) { alert(JSON.stringify(obj));
}, function (err) { alert(err); }, "13401100000");
四、配置插件
在config.xml文件中注冊插件
[html] view plain
<plugin name="Phone" value="com.juhuibao.PhoneGapPlugin.Phone"/>

在AndroidManifest.xml文件中增加許可權
[html] view plain
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

㈢ 求魔獸世界的一個插件代碼

修改種族
改種族為XX .race XX
比如改人類就 .race 1
1 -- Human
2 -- Orc
3 -- Dwarf
4 -- Night Elf
5 -- Undead
6 -- Tauren
7 -- Gnome
8 -- Troll
9 -- Goblin
10 -- Blood Elf
11 -- Draenie
22 -- Worgen
24 -- Pandaren

特有模型修改
.morph xx
取消狀態就是
.morph 0
.morph 44538 這個是星界人 打伊拉貢時出現的狀態
諾格弗格骷髏 7550

男海盜(美味風蛇) 4617
女海盜(美味風蛇) 4618
男忍者(美味風蛇) 4620
女忍者(美味風蛇) 4619

布靈頓4000給的盛裝出席變形效果:
白襯衫女 46716
白襯衫男 46715
黑襯衫男 46726
黑襯衫女 46727

關於如何找到模型id
1.在178網站上搜索你想要變的npc的名字.
比如腦殘吼,當然你不能搜索腦殘吼,要搜索加爾魯什.然後選擇地區在奧格瑞瑪的那個
2.點擊如圖的那個按鈕 轉到wowhead

3.等頁面載入完畢以後,右鍵 選擇查看頁面源代碼 然後搜索 displayid
displayid後面的數字就是模型代碼了

上面這些都從http://bbs.ngacn.cc/read.php?tid=6319999
這里抄的 你想多研究就點進去看

㈣ 誰能給你們寫好的Android開發的打電話和接電話功能的代碼或者說下,該怎麼樣開發這樣的一個軟體

我有系統2.3電話的源碼,你要麼

㈤ 網站上一個輸入電話號碼後系統會自動回撥電話給你的插件叫什麼插件,在哪裡下載

您發的這個是網路離線寶,不過據他們客服人員說馬上下線了,市場上同類產品也有的,也是加一段代碼到網站上,有一個號碼輸入框,訪客輸入號碼點擊免費通話,就可以和您通話。

有關回撥電話詳細查看:網頁鏈接

㈥ 關於電話插件問題,

這應該是主題的吧 雙清一下試試

㈦ 網頁點擊直接撥打電話的代碼用js怎麼實現

可以使用以下三種方法:

1、WEB頁面JS實現一鍵撥號的電話撥打功能。

在撥號界面專,顯示號碼,並提示撥打(支屬持大部分的瀏覽器,但是對QQ瀏覽器的支持一般)。

㈧ 安卓手機打匿名電話軟體程序代碼

你要是找代碼的話,你直接把軟體解了吧。

我在應用寶下載的有信免費電話就回是可以打匿名的。答

要不你就試試,這是個軟體很多的平台,

我平時找的東西在這都是有的,更新速度也很棒。

還有很多不錯的首發和禮包,我個人很喜歡。

像你這種技術宅,應該可以做到的。

下載一個試試吧,等著你的好消息。

㈨ 手機來電報名,可以讀簡訊息的電話插件

簡訊聽聽,類似的不少,用網路手機助手一搜就有

㈩ 我現在有個網站,怎麼添加電話咨詢的代碼到網站里

你去搜下搜狐快站或者siteapp,是能夠把PC端的網站轉化為手機移動端,提供瀏覽移動用戶瀏覽的轉化平台。
不過前提是你的網站要備案。
裡面有電話插件,點擊一下就能撥打你設置的電話。就是你所說的功能