摘要:向發送消息的方式,需按照以下格式標題欄有按鈕比如分享提交等需要盡早向發送消息,告訴按鈕的類型最好中左邊按鈕類型右邊按鈕類型布爾值隱藏可選點擊按鈕觸發的事件同一種按鈕,在不同頁面有不同功能時,需要傳這個值的背景色的色值可選如果沒有情況下,右邊
h5 向 RN 發送消息的方式,需按照以下格式:
window.ReactNativeWebView.postMessage(JSON.stringify({ action: String, payload: Object, }));1、 標題欄有按鈕(比如分享、提交等)
需要盡早向RN發送消息,告訴RN按鈕的類型(最好constructor中)
action: "sendHeaderButtonType", payload: { leftType:"左邊按鈕類型", rightType:"右邊按鈕類型", hideHeader: "布爾值", // true 隱藏header,可選 onPressType: "點擊按鈕觸發的事件",// 同一種按鈕,在不同頁面有不同功能時,需要傳這個值 headerBgColor: "header的背景色的色值", //可選 },
如果沒有herder情況下, hideHeader: true
右邊按鈕是分享:
rightType: "share"
左邊按鈕是取消,右邊按鈕是提交:
leftType:"cancel", rightType: "submit", onPressType: "consultDoctorSubmit" // 咨詢醫生提交訂單2、向 RN 發送信息
發送分享的內容:
action:"sendShareMessage"`, payload:{shareTitle:"分享的標題",shareContent:"分享的剪短的內容(不超過30字)"} // ps: 分享有兩種情況,1、點擊header上的按鈕(所以需要這個action把分享的內容傳給RN), //2、點擊h5內的分享按鈕,3、H5點擊頁面內的按鈕,需要RN處理動作
點擊支付按鈕,需要app來支付:
咨詢訂單:
action:"onPressWechatPay" payload: {orderType: "consultationOrder",orderId: "訂單id", redirectUrl:"支付完成后需要進入的url"}
檢測訂單:
action:"onPressWechatPay" payload: {orderType: "detectionOrder",orderId: "訂單id", redirectUrl:"支付完成后需要進入的url"}
點擊分享按鈕,需要app 處理分享:
action: "onPressShare" payload:{shareTitle:"分享的標題",shareContent:"分享的剪短的內容(不超過30字)"} // PS: 如果已經發送過`sendShareMessage`這個消息,payload 可以為空
點擊h5內的返回按鈕,需要RN來處理返回邏輯:
action: "onPressGoBack",4、h5頁面如果觸發登錄頁面,需要用RN的登錄頁面
action: "navigateToLogin" payload: {currentUrl:"當前的url"}5、RN向 H5 發送消息
RN向h5發送消息,需要用以下的形式:
this.webref.injectJavaScript(` window.g_app._store.dispatch({ type: "action的類型", payload: }); true; `);
RN點擊app內的按鈕,觸發h5的動作,
{ `type`:`user/changeIsPress`, `payload`:`{onPressType:"按鈕觸發的動作類型"}` }
其中`onPressType`的值: - `咨詢醫生`提交訂單: `onPressType`:`"consultDoctorSubmit"` - `RN`支付成功,需要通知`h5`刷新頁面,`onPressType`: `onWeChatPaySuccess`
RN 向h5發送token:
{ type:"chat/saveUserToken", payload:"token的值" }
RN需要h5隱藏所有付費項目的入口,以規避iOS審核IAP要求:
{ type:"user/hidePurchaseInfo", }6、h5頁面的title發生變化時,需要向RN發送消息傳遞新的title:
action: "onPageTitleChange", payload: {pageTitle: "頁面的title"}7、h5需要RN展示 loading動畫,需要向RN發送消息:
{ action:"manageAppLoading", payload: {type:"具體的動作"}, }
顯示loading 時: type:"showLoading"
隱藏loading 時: type:"hideLoading"
8、h5需要手機的權限(相機權限等),需要向RN發送消息:{ action:"requestPermission", payload:{permissionType: "權限類型"} }
其中,permissionType的值:
請求相機權限: permissionType:"camera"
請求位置權限: permissionType: "location"
9、h5需要撥打電話:{ action:"makePhoneCall", payload:{phoneNumber: "手機號碼"} }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105775.html
閱讀 3043·2021-11-19 11:31
閱讀 3127·2021-09-02 15:15
閱讀 984·2019-08-29 17:22
閱讀 1057·2019-08-29 16:38
閱讀 2464·2019-08-26 13:56
閱讀 832·2019-08-26 12:16
閱讀 1434·2019-08-26 11:29
閱讀 929·2019-08-26 10:12