chenritian vor 2 Wochen
Ursprung
Commit
354e51763c

+ 0 - 7
entry/src/main/ets/model/JDBModel.ets

@@ -95,11 +95,4 @@ export class JDBObj {
   async handleShare(shareParams: ShareParams) {
     WechatUtil.handleWeChatShare(shareParams)
   }
-
-  /**
-   * 分享功能
-   */
-  async handleWeChatShareTest(shareParams: ShareParams) {
-    WechatUtil.handleWeChatShareTest(shareParams)
-  }
 }

+ 68 - 34
entry/src/main/ets/pages/Index.ets

@@ -158,47 +158,81 @@ struct Index {
             bottom: YTAvoid.getBottom()
           })
 
-          //TODO 测试数据
-          Row() {
-            Button('微信登录')
-              .width(100)
-              .height(50)
-              .onClick(() => {
-                jDBViewModel.jDBItem.handleWeChatLogin()
-
-              })
-
-            Button('支付宝授权')
-              .width(100)
-              .height(50)
-              .onClick(() => {
-                jDBViewModel.jDBItem.handleAlipayAuthorization()
+          Scroll() {
+            //TODO 测试数据
+            Row() {
+              Button('微信登录')
+                .width(100)
+                .height(50)
+                .onClick(() => {
+                  jDBViewModel.jDBItem.handleWeChatLogin()
 
-              })
-            Button('分享')
-              .width(100)
-              .height(50)
-              .onClick(() => {
-                jDBViewModel.jDBItem.handleShare({
-                  imageUrl: 'https://file.ytmdm.com/jdb_logo.png',
-                  href: 'https://test.zcb.ytpm.net/website/',
-                  scene: 'WXSceneSession'
                 })
 
-              })
+              Button('支付宝授权')
+                .width(100)
+                .height(50)
+                .onClick(() => {
+                  jDBViewModel.jDBItem.handleAlipayAuthorization()
 
-            Button('分享测试')
-              .width(100)
-              .height(50)
-              .onClick(() => {
-                jDBViewModel.jDBItem.handleWeChatShareTest({
-                  imageUrl: 'https://file.ytmdm.com/jdb_logo.png',
-                  href: 'https://www.baidu.com',
-                  scene: 'WXSceneSession'
+                })
+              // 图文分享测试
+              Button('图文分享')
+                .width(100)
+                .height(50)
+                .onClick(() => {
+                  jDBViewModel.jDBItem.handleShare({
+                    type: 0, // 图文分享
+                    imageUrl: 'https://file.ytmdm.com/jdb_logo.png',
+                    href: 'https://test.zcb.ytpm.net/website/',
+                    title: '接单宝:每天轻松接任务,收入稳稳上涨!',
+                    summary: '我已经在接单宝赚到钱啦!任务简单、提现快、靠谱安全。\n点我立即加入,一起赚钱!',
+                    scene: 'WXSceneSession'
+                  })
+                })
+              // 文字分享测试
+              Button('文字分享')
+                .width(100)
+                .height(50)
+                .onClick(() => {
+                  jDBViewModel.jDBItem.handleShare({
+                    type: 1, // 文字分享
+                    summary: '这是一条文字分享内容',
+                    scene: 'WXSceneSession'
+                  })
                 })
 
-              })
+              // 图片分享测试
+              Button('图片分享')
+                .width(100)
+                .height(50)
+                .onClick(() => {
+                  jDBViewModel.jDBItem.handleShare({
+                    type: 2, // 图片分享
+                    imageUrl: 'https://file.ytmdm.com/jdb_logo.png',
+                    scene: 'WXSceneSession'
+                  })
+                })
+              // 朋友圈图文分享
+              Button('朋友圈分享')
+                .width(100)
+                .height(50)
+                .onClick(() => {
+                  jDBViewModel.jDBItem.handleShare({
+                    type: 0, // 图文分享
+                    imageUrl: 'https://file.ytmdm.com/jdb_logo.png',
+                    href: 'https://test.zcb.ytpm.net/website/',
+                    title: '接单宝:每天轻松接任务,收入稳稳上涨!',
+                    summary: '我已经在接单宝赚到钱啦!任务简单、提现快、靠谱安全。\n点我立即加入,一起赚钱!',
+                    scene: 'WXSceneTimeline' // 朋友圈
+                  })
+                })
+            }
           }
+          .width('100%')
+          .height(50)
+          .scrollBar(BarState.Off)
+          .scrollable(ScrollDirection.Horizontal)
           .position({
             left: 0,
             bottom: 200

+ 18 - 1
entry/src/main/ets/utils/wechat/WXApiEventHandlerImpl.ets

@@ -1,5 +1,13 @@
 import { IBestToast } from '@ibestservices/ibest-ui';
-import { BaseReq, BaseResp, LaunchFromWXReq, PayResp, SendAuthResp, WXApiEventHandler } from '@tencent/wechat_open_sdk';
+import {
+  BaseReq,
+  BaseResp,
+  LaunchFromWXReq,
+  PayResp,
+  SendAuthResp,
+  SendMessageToWXResp,
+  WXApiEventHandler
+} from '@tencent/wechat_open_sdk';
 import { WechatApi } from '../../apis/WechatApi';
 import { AccessTokenResponse, WeChatExtData } from '../../model/WechatModel';
 import { jDBViewModel } from '../../viewModels/JDBViewModel';
@@ -72,6 +80,15 @@ export class WXApiEventHandlerImpl implements WXApiEventHandler {
         data: resp
       })
       console.log('微信支付结果', JSON.stringify(resp));
+    } else if (resp instanceof SendMessageToWXResp) {
+      // 支付回调处理
+      jDBViewModel.runJavaScript({
+        type: 'wx_pay',
+        data: resp
+      })
+      console.log('微信支付结果', JSON.stringify(resp));
+    } else {
+      YTLog.warn(TAG, `Unknown resp type: ${resp.type}`);
     }
   }
 

+ 35 - 32
entry/src/main/ets/utils/wechat/WechatUtil.ets

@@ -1,4 +1,5 @@
 import {
+  IMediaObject,
   PayReq,
   SendAuthReq,
   SendMessageToWXReq,
@@ -6,6 +7,7 @@ import {
   WXAPIFactory,
   WXImageObject,
   WXMediaMessage,
+  WXTextObject,
   WXWebpageObject
 } from '@tencent/wechat_open_sdk';
 import { ContextHelper } from '../ContextHelper';
@@ -71,19 +73,42 @@ export class WechatUtil {
    * 微信分享
    */
   static async handleWeChatShare(shareData: ShareParams) {
-    // 下载并获取图片URI
-    const thumbBuffer = await ImageUtil.downLoadToBoxWithQuality(shareData.imageUrl!, 30)
+    let mediaObject: IMediaObject
+    switch (shareData.type) {
+      case 0:
+        const webpageObject = new WXWebpageObject()
+        webpageObject.webpageUrl = shareData.href! // 设置跳转链接
+        mediaObject = webpageObject
+
+        break
+      case 1:
+        const textObject = new WXTextObject()
+        textObject.text = shareData.summary
+        mediaObject = textObject
+        break
+      case 2:
+        const imageObject = new WXImageObject()
+        imageObject.uri = fileUri.getUriFromPath(await ImageUtil.downLoadToBox(shareData.imageUrl!))
+        mediaObject = imageObject
+        break
+      default:
+      // 默认网页分享
+        const defaultWebpageObject = new WXWebpageObject()
+        defaultWebpageObject.webpageUrl = shareData.href!
+        mediaObject = defaultWebpageObject
+        break
+    }
 
-    // 创建网页对象,包含跳转链接
-    const webpageObject = new WXWebpageObject()
-    webpageObject.webpageUrl = shareData.href // 设置跳转链接
 
     let mediaMessage = new WXMediaMessage()
-    mediaMessage.title = shareData.title || '「接单宝」✔ 任务简单 ✔ 上线就能赚✔ 提现快速到账'
-    mediaMessage.description = shareData.summary || '「接单宝」✔ 任务简单 ✔ 上线就能赚✔ 提现快速到账'
-    mediaMessage.thumbData = new Uint8Array(thumbBuffer!)
-    // mediaMessage.thumbMediaObject = imageObject // 设置缩略图
-    mediaMessage.mediaObject = webpageObject // 设置网页对象
+    mediaMessage.title = shareData.title
+    mediaMessage.description = shareData.summary
+    if (shareData.type == 0) {
+      const thumbBuffer = await ImageUtil.downLoadToBoxWithQuality(shareData.imageUrl!, 30)
+      mediaMessage.thumbData = new Uint8Array(thumbBuffer!)
+    }
+
+    mediaMessage.mediaObject = mediaObject! // 设置网页对象
 
     let req = new SendMessageToWXReq()
     req.scene = shareData.scene == 'WXSceneSession' ? SendMessageToWXReq.WXSceneSession :
@@ -94,26 +119,4 @@ export class WechatUtil {
 
 
   }
-
-
-  /**
-   * 微信分享
-   */
-  /**
-   * 微信分享
-   */
-  static async handleWeChatShareTest(shareData: ShareParams) {
-    let imageObject = new WXImageObject()
-
-    imageObject.uri = fileUri.getUriFromPath(await ImageUtil.downLoadToBox(shareData.imageUrl!));
-
-    let mediaMessage = new WXMediaMessage()
-    mediaMessage.mediaObject = imageObject
-
-    let req = new SendMessageToWXReq()
-    req.scene = SendMessageToWXReq.WXSceneSession
-    req.message = mediaMessage
-
-    await WechatUtil.getWechatApi().sendReq(ContextHelper.UIAbilityContext, req)
-  }
 }

+ 1 - 1
entry/src/main/ets/viewModels/JDBViewModel.ets

@@ -7,7 +7,7 @@ import { JDBObj, RunH5Param } from '../model/JDBModel'
 
 @ObservedV2
 export class JDBViewModel {
-  @Trace flag: boolean = true //是否启动web
+  @Trace flag: boolean = false //是否启动web
   @Trace isExistDeviceChannel: boolean = true
   controller: webview.WebviewController = new webview.WebviewController()
   host: string = ''