Cordova微信登錄插件Android端不能使用的問(wèn)題

在開發(fā)混合項(xiàng)目的時(shí)候衰倦,避免不了使用微信登錄花鹅。然而微信官方并沒(méi)有提供針對(duì)混開項(xiàng)目的集成方式;好在網(wǎng)上有大神針對(duì)cordova寫了一個(gè)微信登錄的插件交掏,可惜兩年前就已經(jīng)停止維護(hù)妆偏,存在一些問(wèn)題,下面就主要遇到的問(wèn)題盅弛,提供一些解決辦法钱骂。

  1. java代碼錯(cuò)誤
  2. 微信文件位置放錯(cuò)

java代碼錯(cuò)誤

共有3個(gè)錯(cuò)誤:

1 獲取AppID方法調(diào)用錯(cuò)誤

2 變量調(diào)用錯(cuò)誤

3 獲取js參數(shù)錯(cuò)誤

首先來(lái)看一下錯(cuò)誤文件所在位置:

報(bào)錯(cuò)文件路徑:src/main/java/xu/li/cordova/wechat的WeChat文件

image
獲取AppID錯(cuò)誤
image

該方法調(diào)用getAppId()方法獲取String類型的AppID并將值賦值給saveAppid叔锐。但是該方法傳入了一個(gè)Activity。我們查看該方法時(shí)發(fā)現(xiàn)getAppId()方法并沒(méi)有讓傳入任何參數(shù)见秽。

(圖3)

image

解決方式

去掉cordova.getActivity()參數(shù)

 try {
    final String appid = params.getString("appid");
    //去掉Activity參數(shù)
    final String savedAppid = getAppId();
    if (!savedAppid.equals(appid)) {
         this.saveAppId(cordova.getActivity(), appid);
        }
變量調(diào)用錯(cuò)誤

在圖3中我們看到異常代碼

 appId = preferences.getString(WXAPPID_PROPERTY_KEY, "");

如果懂點(diǎn)java基礎(chǔ)的人一看就知道錯(cuò)誤的原因愉烙,getAppId()方法為一個(gè)靜態(tài)方法,里面調(diào)用的方法也應(yīng)該是靜態(tài)的解取。

解決方式

1 將CordovaPlugin類的成員變量也修改為靜態(tài)的

protected static CordovaPreferences preferences;

2 在Wechat類中申明一個(gè)CordovaPreferences的靜態(tài)變量步责,并在pluginInitialize()方法為其賦值


image

最后將getAppId()方法改成如下

 public static String getAppId() {
        if (appId == null) {
            //獲取Appid
            appId = myAppID.getString(WXAPPID_PROPERTY_KEY, "");
        }

        return appId;
}
獲取js參數(shù)錯(cuò)誤

在調(diào)用微信支付的時(shí)候會(huì)調(diào)用sendPaymentRequest()方法,此方法中會(huì)獲取從js前端傳過(guò)來(lái)的參數(shù)值獲取AppId


image

由于公司項(xiàng)目中js代碼調(diào)用微信分享適配的為2.0的微信登錄分享插件禀苦;而當(dāng)時(shí)我用的是2.3版本的插件所以蔓肯,遇到了參數(shù)出入異常的問(wèn)題。

解決辦法

1 去掉紅框中的代碼

2 將插件換成2.0版本(如果插件使用的為2.0版本振乏,上面的錯(cuò)誤都不存在了省核,只有一個(gè)微信官方文件路徑錯(cuò)誤的問(wèn)題)

cordova命令:

//移除微信登錄分享插件
cordova plugin rm cordova-plugin-wechat
// 添加微信登錄分享插件并制定為2.0版本
cordova-plugin-wechat@2.0.0 --variable wechatappid=YOUR_WECHAT_APPID

微信文件位置放錯(cuò)

微信登錄官方文檔有兩個(gè)是要自己創(chuàng)建的類:WXEntryActivity類和WXPayEntryActivity類

image

紅框中已經(jīng)說(shuō)明必須放在包名下面,而插件在項(xiàng)目的目錄中自己生成了一個(gè)src/包名/wxapi的目錄
image

androidstudio的項(xiàng)目正確包名位置為app/src/main/java/包名
image

問(wèn)題解決

1 直接將plugins文件下android項(xiàng)目的微信目錄及文件放到正確的包名路徑下


image

此種解決方式在每次寫完前端代碼昆码,不要使用cordova build android 命令打包,使用此命令會(huì)使android項(xiàng)目重構(gòu)邻储,清楚之前修改的android文件赋咽。可以使用cordova run android 命令吨娜, 此命令及時(shí)沒(méi)有連接手機(jī)脓匿,也會(huì)將最新的前端代碼添加到android項(xiàng)目中;然后使用androidstudio打包即可宦赠。

2 修改插件的js代碼陪毡。打開微信登錄分享插件的js代碼文件


image

將targetDir變量的發(fā)賦值方法path.join()

var targetDir  = path.join(projectRoot, "platforms", "android", "src", packageName.replace(/\./g, path.sep), "wxapi");
        targetFiles = ["EntryActivity.java", "WXEntryActivity.java", "WXPayEntryActivity.java"];

改為

 var targetDir  = path.join(projectRoot, "platforms", "android", "app","src","main","java", packageName.replace(/\./g, path.sep), "wxapi");
        targetFiles = ["EntryActivity.java", "WXEntryActivity.java", "WXPayEntryActivity.java"];

此問(wèn)題為androidstudio項(xiàng)目android包名路徑的問(wèn)題,上面解釋過(guò)勾扭,這里就不多解釋了毡琉。然后就可以刪除platforms文件夾下的android平臺(tái)重新生成了。(提示:如果是2.3版本妙色,刪除android平臺(tái)后桅滋,需要修復(fù)上面的java代碼錯(cuò)誤)

總結(jié)

cordova微信登錄分享插件因?yàn)槟昃檬蓿栽赼ndroid平臺(tái)出現(xiàn)了一些問(wèn)題(ios還未發(fā)現(xiàn))身辨,問(wèn)題主要是代碼和文件路徑錯(cuò)誤丐谋。如果公司沒(méi)有硬性要求必須使用2.3版本的插件,建議使用2.0.0版本的插件煌珊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末号俐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子定庵,更是在濱河造成了極大的恐慌吏饿,老刑警劉巖踪危,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異找岖,居然都是意外死亡陨倡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門许布,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)兴革,“玉大人,你說(shuō)我怎么就攤上這事蜜唾≡忧” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵袁余,是天一觀的道長(zhǎng)擎勘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)颖榜,這世上最難降的妖魔是什么棚饵? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮掩完,結(jié)果婚禮上噪漾,老公的妹妹穿的比我還像新娘。我一直安慰自己且蓬,他們只是感情好欣硼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恶阴,像睡著了一般诈胜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冯事,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天焦匈,我揣著相機(jī)與錄音,去河邊找鬼昵仅。 笑死括授,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岩饼。 我是一名探鬼主播荚虚,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼籍茧!你這毒婦竟也來(lái)了版述?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤寞冯,失蹤者是張志新(化名)和其女友劉穎渴析,沒(méi)想到半個(gè)月后晚伙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俭茧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年咆疗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片母债。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡午磁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出毡们,到底是詐尸還是另有隱情迅皇,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布衙熔,位于F島的核電站登颓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏红氯。R本人自食惡果不足惜框咙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痢甘。 院中可真熱鬧扁耐,春花似錦、人聲如沸产阱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)构蹬。三九已至,卻和暖如春悔据,著一層夾襖步出監(jiān)牢的瞬間庄敛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工科汗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藻烤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓头滔,卻偏偏與公主長(zhǎng)得像怖亭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坤检,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,506評(píng)論 25 707
  • 用兩張圖告訴你兴猩,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,693評(píng)論 2 59
  • 導(dǎo)語(yǔ) 這篇文章主要介紹了如何在Android平臺(tái)上使用Cordova 的command-line interfac...
    jorstinchan閱讀 22,567評(píng)論 6 41
  • 最近讨勤,想加入一個(gè)群學(xué)習(xí),審核非常嚴(yán)格晨另,發(fā)了審請(qǐng)二周還沒(méi)回音潭千。到底過(guò)還是沒(méi)過(guò)?心里有些急借尿。 中午刨晴,忍不住微信小助理,...
    孫國(guó)飛揚(yáng)閱讀 467評(píng)論 0 2
  • 兒子和奶奶回長(zhǎng)陽(yáng)了垛玻,老公上班了割捅,好好享受一個(gè)人的日子。 早上6:00跑步帚桩,回家做早餐這會(huì)跑步流的汗差不多已干亿驾。再?zèng)_...
    蔣泳頻閱讀 233評(píng)論 4 2