bayi 1 年間 前
コミット
c9acd568e0
8 ファイル変更338 行追加21 行削除
  1. 5 5
      app.js
  2. 104 16
      app.json
  3. 10 0
      app.miniapp.json
  4. 56 0
      pages/donutLogin/index.js
  5. 3 0
      pages/donutLogin/index.json
  6. 24 0
      pages/donutLogin/index.wxml
  7. 71 0
      pages/donutLogin/index.wxss
  8. 65 0
      project.miniapp.json

+ 5 - 5
app.js

@@ -41,15 +41,15 @@ App({
             }
         } else {
             let shareUid = options.query.uid || ''
-            let userChannelCode='3001'
+            let userChannelCode = '3001'
             if ([1045, 1046, 1084].includes(scene)) {
                 console.log("朋友圈广告进入");
-                userChannelCode='4001'
+                userChannelCode = '4001'
             }
-            this.login(shareUid,userChannelCode)
+            this.login(shareUid, userChannelCode)
         }
     },
-    async login(shareUid,userChannelCode='3001') {
+    async login(shareUid, userChannelCode = '3001') {
         let uid = wx.getStorageSync('uid')
         if (uid) {
             let userInfo = await getMyInfo()
@@ -60,7 +60,7 @@ App({
                 getApp().callBack();
             }
         } else {
-            wx.login({
+            wx.getMiniProgramCode({
                 success: async (res) => {
                     if (res.code) {
                         // 获取openid

+ 104 - 16
app.json

@@ -1,4 +1,79 @@
 {
+    "static": [{
+        "pattern": "pages/donutLogin/index.*",
+        "platforms": [
+            "mini-ios",
+            "mini-android"
+        ]
+    }],
+    "mini-ios": {
+        "pages": [
+            "pages/index/index",
+            "pages/activity/index",
+            "pages/message/index",
+            "pages/my/index",
+            "pages/works/index",
+            "pages/like/index",
+            "pages/chat/index",
+            "pages/comment/index",
+            "pages/notice/index",
+            "pages/searchFriend/index",
+            "pages/editUser/index",
+            "pages/childClassify/index",
+            "pages/reading/index",
+            "pages/otherWork/index",
+            "pages/pkPage/index",
+            "pages/personal/index",
+            "pages/rankIntro/index",
+            "pages/match/index",
+            "pages/ranking/index",
+            "pages/invite/index",
+            "pages/inviteRanking/index",
+            "pages/userWorks/index",
+            "pages/friend/index",
+            "pages/pkResult/index",
+            "pages/score/index",
+            "pages/commodity/index",
+            "pages/medalStore/index",
+            "pages/aiAvatar/index",
+            "pages/orderRecord/index",
+            "pages/donutLogin/index"
+        ]
+    },
+    "mini-android": {
+        "pages": [
+            "pages/index/index",
+            "pages/activity/index",
+            "pages/message/index",
+            "pages/my/index",
+            "pages/works/index",
+            "pages/like/index",
+            "pages/chat/index",
+            "pages/comment/index",
+            "pages/notice/index",
+            "pages/searchFriend/index",
+            "pages/editUser/index",
+            "pages/childClassify/index",
+            "pages/reading/index",
+            "pages/otherWork/index",
+            "pages/pkPage/index",
+            "pages/personal/index",
+            "pages/rankIntro/index",
+            "pages/match/index",
+            "pages/ranking/index",
+            "pages/invite/index",
+            "pages/inviteRanking/index",
+            "pages/userWorks/index",
+            "pages/friend/index",
+            "pages/pkResult/index",
+            "pages/score/index",
+            "pages/commodity/index",
+            "pages/medalStore/index",
+            "pages/aiAvatar/index",
+            "pages/orderRecord/index",
+            "pages/donutLogin/index"
+        ]
+    },
     "pages": [
         "pages/index/index",
         "pages/activity/index",
@@ -47,21 +122,26 @@
     "tabBar": {
         "custom": true,
         "list": [{
-            "pagePath": "pages/activity/index",
-            "text": "活动"
-        }, {
-            "pagePath": "pages/works/index",
-            "text": "作品"
-        }, {
-            "pagePath": "pages/index/index",
-            "text": "推荐"
-        }, {
-            "pagePath": "pages/message/index",
-            "text": "消息"
-        }, {
-            "pagePath": "pages/my/index",
-            "text": "我的"
-        }]
+                "pagePath": "pages/activity/index",
+                "text": "活动"
+            },
+            {
+                "pagePath": "pages/works/index",
+                "text": "作品"
+            },
+            {
+                "pagePath": "pages/index/index",
+                "text": "推荐"
+            },
+            {
+                "pagePath": "pages/message/index",
+                "text": "消息"
+            },
+            {
+                "pagePath": "pages/my/index",
+                "text": "我的"
+            }
+        ]
     },
     "window": {
         "backgroundTextStyle": "light",
@@ -75,5 +155,13 @@
         "~/*": "/*"
     },
     "sitemapLocation": "sitemap.json",
-    "__usePrivacyCheck__": true
+    "__usePrivacyCheck__": true,
+    "miniApp": {
+        "useAuthorizePage": true
+    },
+    "permission": {
+        "scope.record": {
+            "desc": "用于录制音频配音"
+        }
+    }
 }

+ 10 - 0
app.miniapp.json

@@ -0,0 +1,10 @@
+{
+	"adapteByMiniprogram": {
+		"userName": "gh_50f61361ad1d"
+    },
+    "identityServiceConfig":
+    {
+        "authorizeMiniprogramType": 1,
+        "miniprogramLoginPath": "/pages/donutLogin/index"
+    }
+}

+ 56 - 0
pages/donutLogin/index.js

@@ -0,0 +1,56 @@
+Page({
+
+  data: {
+    appIcon: 'https://testchu-7gy8occc8dcc14c3-1304825656.tcloudbaseapp.com/platform-console/assets/favicon.svg',
+    appName: 'Donut 多端应用',
+    checkedAgree: false,
+    loginSuccess: false, // 标记是否登录成功
+  },
+
+  /**
+   * 退出页面时触发基础库回调,由基础库内部处理系统登录态。
+   */
+  onUnload() {
+    const eventChannel = this.getOpenerEventChannel();
+    if (eventChannel) {
+      eventChannel.emit('__donutLogin__', { success: this.data.loginSuccess });
+    }
+  },
+
+  /**
+   * 触发小程序登录,登录成功后自动退出页面
+   */
+  onTapWeixinMiniProgramLogin() {
+    wx.weixinMiniProgramLogin({
+      success: () => {
+        this.setData({ loginSuccess: true });
+        wx.navigateBack();
+      },
+      fail: () => {
+        wx.showToast({
+          title: '小程序登录失败',
+          icon: 'none'
+        });
+      }
+    })
+  },
+
+  onCheckboxChange() {
+    this.setData({ checkedAgree: !this.data.checkedAgree });
+  },
+
+  /**
+   * 
+   * 使用单独的 webview 页面展示用户协议
+   */
+  onShowAgreement(e) {
+    const urls = [
+      'link1',
+      'link2'
+    ];
+    const url = urls[e.target.dataset.idx];
+    // wx.navigateTo({
+    //   url: `/pages/webview/index?url=${url}`,
+    // });
+  },
+})

+ 3 - 0
pages/donutLogin/index.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 24 - 0
pages/donutLogin/index.wxml

@@ -0,0 +1,24 @@
+
+<view class="donutLogin__app-info">
+  <image class="donutLogin__app-icon" src="{{appIcon}}"></image>
+  <view class="donutLogin__app-name">{{appName}}</view>
+</view>
+
+<view class="donutLogin__login-action">
+  <button class="donutLogin__login-button" type="primary" bindtap="onTapWeixinMiniProgramLogin" disabled="{{!checkedAgree}}">微信小程序登录</button>
+  <checkbox-group bindchange="onCheckboxChange">
+    <label class="donutLogin__checkbox-container">
+      <checkbox class="donutLogin__checkbox" checked="{{checkedAgree}}" />
+      <span class="donutLogin__checkbox-label"></span>
+      <span class="donutLogin__checkbox-text">
+        阅读并同意
+        <span catchtap="onShowAgreement" data-idx="0" style="color: #576b95;">
+          《用户协议》
+        </span>
+        <span catchtap="onShowAgreement" data-idx="1" style="color: #576b95;">
+          《隐私政策》
+        </span>
+      </span>
+    </label>
+  </checkbox-group>
+</view>

ファイルの差分が大きいため隠しています
+ 71 - 0
pages/donutLogin/index.wxss


+ 65 - 0
project.miniapp.json

@@ -0,0 +1,65 @@
+{
+  "miniVersion": "v2",
+  "name": "朗读小咖秀",
+  "version": "0.0.1",
+  "mini-android": {
+    "sdkVersion": "1.0.21",
+    "toolkitVersion": "0.10.0",
+    "useExtendedSdk": {
+      "media": true,
+      "bluetooth": false,
+      "network": true,
+      "scanner": false,
+      "xweb": false
+    },
+    "icons": {
+      "hdpi": "",
+      "xhdpi": "",
+      "xxhdpi": "",
+      "xxxhdpi": ""
+    },
+    "splashscreen": {
+      "hdpi": "",
+      "xhdpi": "",
+      "xxhdpi": ""
+    },
+    "enableVConsole": "open",
+    "privacy": {
+      "enable": true
+    },
+    "privateDescriptions": {
+      "RECORD_AUDIO": "用于录制音频"
+    }
+  },
+  "mini-ios": {
+    "sdkVersion": "1.1.4",
+    "toolkitVersion": "0.0.9",
+    "useExtendedSdk": {
+      "WeAppOpenFuns": true,
+      "WeAppNetwork": false,
+      "WeAppBluetooth": false,
+      "WeAppMedia": false,
+      "WeAppLBS": false,
+      "WeAppOthers": false
+    },
+    "enableVConsole": "open",
+    "icons": {
+      "mainIcon120": "",
+      "mainIcon180": "",
+      "spotlightIcon80": "",
+      "spotlightIcon120": "",
+      "settingsIcon58": "",
+      "settingsIcon87": "",
+      "notificationIcon40": "",
+      "notificationIcon60": "",
+      "appStore1024": ""
+    },
+    "splashScreen": {
+      "customImage": ""
+    },
+    "privacy": {
+      "enable": false
+    }
+  },
+  "versionCode": 100
+}