基于react-native-wechat 之App拉起小程序源碼修改

前言

最近做的一個需求紧唱,要求app需要拉起小程序進行支付操作,之前做reavt-native開發(fā)內部集成微信的支付隶校, 分享琼蚯,第三方登錄等操作。但是默認的庫中不包含拉起小程序的類惠况。
小程序與app關聯(lián)的問題這里就不做描述了。 主要需要小程序的原始Id和app的id

AndroidManifest.xml文件修改

 <activity
            android:name="包名.wxapi.WXEntryActivity"
            android:label="@string/app_name"
            android:exported="true"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:launchMode="singleTask"
            android:taskAffinity="包名"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
            />

react-native-WeChat index.js 文件增加拉起小程序方法

/**
 * wechat launchMini
 * @param {Object} data
 * @returns {Promise}
 */
export function launchMini(data) {
    // FIXME(Yorkie): see https://github.com/yorkie/react-native-wechat/issues/203
    // Here the server-side returns params in lowercase, but here SDK requires timeStamp
    // for compatibility, we make this correction for users.
    function correct(actual, fixed) {
        if (!data[fixed] && data[actual]) {
            data[fixed] = data[actual];
            delete data[actual];
        }
    }
   // 參數設置 這里距離為訂單Id
    correct('orderId', 'orderId');
    // FIXME(94cstyles)
    // Android requires the type of the timeStamp field to be a string
    if (Platform.OS === 'android') data.timeStamp = String(data.timeStamp)

    return new Promise((resolve, reject) => {
        WeChat.launchMini(data, result => {
            if (result) reject(result);
        });
    });
}

android目錄下build.gradle文件下增加依賴

api 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1'

WeChatModule.java增加方法

@ReactMethod
public void launchMini(ReadableMap data, Callback callback) {
String id = "";
if (data.hasKey("orderId")) {
id = data.getString("orderId");
}

    String appId = ""; // 填應用AppId
    IWXAPI api = WXAPIFactory.createWXAPI(getCurrentActivity(), appId);

    WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
    req.userName = ""; // 填小程序原始id
    req.path = "/pages/user/pay?id=" + id
            ////拉起小程序頁面的可帶參路徑宁仔,不填默認拉起小程序首頁稠屠,對于小游戲,可以只傳入 query 部分,來實現傳參效果权埠,如:傳入 "?foo=bar"榨了。
    req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_PREVIEW;// 可選打開 開發(fā)版,體驗版和正式版
    callback.invoke(api.sendReq(req) ? null : INVOKE_FAILED);
}
## public void onResp(BaseResp baseResp) 甚至回調方法添加
else if (baseResp instanceof WXLaunchMiniProgram.Resp) {
        WXLaunchMiniProgram.Resp resp = (WXLaunchMiniProgram.Resp) (baseResp);
        map.putString("type", "WXLaunchMiniProgram.Resp");
        map.putString("returnKey", resp.extMsg);
    }

react-native端需要進行監(jiān)聽

WeChat.addListener("WXLaunchMiniProgram.Resp", response => {
//returnKey 自己約定返回參數
        if(response && response.returnKey == 'success') {
          
        } else {
          Toast.info('支付失敗');
        }
      });
// 調用:
WeChat.launchMini({});

小程序打開APP可看一下官網攘蔽。大功告成

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末龙屉,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子满俗,更是在濱河造成了極大的恐慌转捕,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唆垃,死亡現場離奇詭異五芝,居然都是意外死亡,警方通過查閱死者的電腦和手機辕万,發(fā)現死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門枢步,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渐尿,你說我怎么就攤上這事醉途。” “怎么了砖茸?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵隘擎,是天一觀的道長。 經常有香客問我渔彰,道長嵌屎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任恍涂,我火速辦了婚禮宝惰,結果婚禮上,老公的妹妹穿的比我還像新娘再沧。我一直安慰自己尼夺,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布炒瘸。 她就那樣靜靜地躺著淤堵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顷扩。 梳的紋絲不亂的頭發(fā)上拐邪,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音隘截,去河邊找鬼扎阶。 笑死汹胃,一個胖子當著我的面吹牛,可吹牛的內容都是我干的东臀。 我是一名探鬼主播着饥,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惰赋!你這毒婦竟也來了宰掉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤赁濒,失蹤者是張志新(化名)和其女友劉穎轨奄,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體流部,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡戚绕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了枝冀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舞丛。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖果漾,靈堂內的尸體忽然破棺而出球切,到底是詐尸還是另有隱情,我是刑警寧澤绒障,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布吨凑,位于F島的核電站,受9級特大地震影響户辱,放射性物質發(fā)生泄漏鸵钝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一庐镐、第九天 我趴在偏房一處隱蔽的房頂上張望恩商。 院中可真熱鬧,春花似錦必逆、人聲如沸怠堪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粟矿。三九已至,卻和暖如春损拢,著一層夾襖步出監(jiān)牢的瞬間陌粹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工福压, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留申屹,地道東北人绘证。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像哗讥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胞枕,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容