国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Electron控制應(yīng)用是否更新

共 17998字,需瀏覽 36分鐘

 ·

2021-08-31 11:43

1更新需要提示用戶,需要控制應(yīng)用是否更新

1. 方案一

在檢測到更新后提示用戶,讓用戶選擇更新。

設(shè)置autoDownload參數(shù)為false,讓應(yīng)用檢測到更新不自動下載,改成手動下載更新包。

通過在鉤子update-available中,加入對話框提示用戶,讓用戶選擇。

response為0用戶選擇確定,觸發(fā)downloadUpdate方法下載應(yīng)用更新包進(jìn)行后續(xù)更新操作。否則,不下載更新包。

如果我們不配置autoDownload為false,那么問題來了:在彈出對話框的同時(shí),用戶還來不及選擇,應(yīng)用自動下載并且更新完成,做不到阻塞。

重要代碼如下:

autoUpdater.autoDownload = false

update-available鉤子中彈出對話框

autoUpdater.on('update-available', (ev, info) => {
  // // 不可逆過程
  const options = {
    type'info',
    buttons: ['確定''取消'],
    title'更新提示',
    // ${info.version} Cannot read property 'version' of undefined
    message'發(fā)現(xiàn)有新版本,是否更新?',
    cancelId1
  }
  dialog.showMessageBox(options).then(res => {
    if (res.response === 0) {
      autoUpdater.downloadUpdate()
      logger.info('下載更新包成功')
      sendStatusToWindow('下載更新包成功');
    } else {
      return;
    }
  })
})

2. 方案二

在更新下載完后提示用戶,讓用戶選擇更新。

先配置參數(shù)autoInstallOnAppQuit為false,阻止應(yīng)用在檢測到更新包后自動更新。

在鉤子update-downloaded中加入對話框提示用戶,讓用戶選擇。

response為0用戶選擇確定,更新應(yīng)用。否則,當(dāng)前應(yīng)用不更新。

如果我們不配置autoInstallOnAppQuit為false,那么問題是:雖然第一次應(yīng)用不更新,但是第二次打開應(yīng)用,應(yīng)用馬上關(guān)閉,還沒讓我們看到主界面,應(yīng)用暗自更新,重點(diǎn)是更新完后不重啟應(yīng)用。

重要代碼如下:

// 表示下載包不自動更新
autoUpdater.autoInstallOnAppQuit = false
在update-downloaded鉤子中彈出對話框
autoUpdater.on('update-downloaded', (ev, releaseNotes, releaseName) => {
  logger.info('下載完成,更新開始')
  sendStatusToWindow('下載完成,更新開始');
  // Wait 5 seconds, then quit and install
  // In your application, you don't need to wait 5 seconds.
  // You could call autoUpdater.quitAndInstall(); immediately
  const options = {
    type'info',
    buttons: ['確定''取消'],
    title'應(yīng)用更新',
    message: process.platform === 'win32' ? releaseNotes : releaseName,
    detail'發(fā)現(xiàn)有新版本,是否更新?'
  }
  dialog.showMessageBox(options).then(returnVal => {
    if (returnVal.response === 0) {
      logger.info('開始更新')
      setTimeout(() => {
        autoUpdater.quitAndInstall()
      }, 5000);
    } else {
      logger.info('取消更新')
      return
    }
  })
});

3. 源碼分析

未打包目錄位于:electron-builder/packages/electron-updater/src/AppUpdater.ts中。打包后在electron-updater\out\AppUpdater.d.ts中

  1. 首先進(jìn)入checkForUpdates()方法,開始檢測更新
  2. 正在更新不需要進(jìn)入
  3. 開始更新前判斷autoDownload,為true自動下載,為false不下載等待應(yīng)用通知。
export declare abstract class AppUpdater extends EventEmitter {
    /**
     * 當(dāng)被發(fā)現(xiàn)有更新時(shí),是否要自動下載更新
     * 場景:可以適用于electron檢查更新包提示,用戶操作是否需要更新
     */

    autoDownload: boolean;
    /**
     * 在app.quit()后,是否自動將下載下載的更新包更新
     * 場景:可以適用于electron下載完更新包提示,用戶操作是否需要更新。在第二次打開應(yīng)用,應(yīng)用不會自動更新。
     */

    autoInstallOnAppQuit: boolean;
}


/**
 * 檢測是否需要更新
 */

checkForUpdates(): Promise < UpdateCheckResult > {
  let checkForUpdatesPromise = this.checkForUpdatesPromise
  // 正在檢測更新跳過
  if (checkForUpdatesPromise != null) {
    this._logger.info("Checking for update (already in progress)")
    return checkForUpdatesPromise
  }

  const nullizePromise = () => this.checkForUpdatesPromise = null
  // 開始檢測更新
  this._logger.info("Checking for update")
  checkForUpdatesPromise = this.doCheckForUpdates()
  .then(it => {
    nullizePromise()
    return it
  })
  .catch(e => {
    nullizePromise()
    this.emit("error", e, `Cannot check for updates: ${(e.stack || e).toString()}`)
    throw e
  })

  this.checkForUpdatesPromise = checkForUpdatesPromise
  return checkForUpdatesPromise
}
// 檢測更新具體函數(shù)
private async doCheckForUpdates(): Promise < UpdateCheckResult > {
  // 觸發(fā)  checking-for-update 鉤子
  this.emit("checking-for-update")
  // 取更新信息
  const result = await this.getUpdateInfoAndProvider()
  const updateInfo = result.info
  //  判斷更新信息是否有效
  if (!await this.isUpdateAvailable(updateInfo)) {
    this._logger.info(`Update for version ${this.currentVersion} is not available (latest version: ${updateInfo.version}, downgrade is ${this.allowDowngrade ? "allowed" : "disallowed"}).`)
    this.emit("update-not-available", updateInfo)
    return {
      versionInfo: updateInfo,
      updateInfo,
    }
  }

  this.updateInfoAndProvider = result
  this.onUpdateAvailable(updateInfo)

  const cancellationToken = new CancellationToken()
  //noinspection ES6MissingAwait
  // 如果設(shè)置autoDownload為true,則開始自動下載更新包,否則不下載
  return {
    versionInfo: updateInfo,
    updateInfo,
    cancellationToken,
    downloadPromisethis.autoDownload ? this.downloadUpdate(cancellationToken) : null
  }
}

如果需要配置updater中的其他參數(shù)達(dá)到某種功能,我們可以仔細(xì)查看其中的配置項(xiàng)。

export declare abstract class AppUpdater extends EventEmitter {
    /**
     * 當(dāng)被發(fā)現(xiàn)有更新時(shí),是否要自動下載更新
     * 場景:可以適用于electron檢查更新包提示,用戶操作是否需要更新
     */

    autoDownload: boolean;
    /**
     * 在app.quit()后,是否自動將下載下載的更新包更新
     * 場景:可以適用于electron下載完更新包提示,用戶操作是否需要更新。在第二次打開應(yīng)用,應(yīng)用不會自動更新。
     */

    autoInstallOnAppQuit: boolean;
    /**
     * *GitHub provider only.* Whether to allow update to pre-release versions. Defaults to `true` if application version contains prerelease components (e.g. `0.12.1-alpha.1`, here `alpha` is a prerelease component), otherwise `false`.
     ** GitHub提供者。
    *是否允許升級到預(yù)發(fā)布版本。
如果應(yīng)用程序版本包含預(yù)發(fā)布組件,默認(rèn)為“true”。
“0.12.1-alpha。
1 ',這里' alpha '是預(yù)發(fā)布組件),否則' false '。
     * If `true`, downgrade will be allowed (`allowDowngrade` will be set to `true`).
如果' true ',則允許降級(' allow降級'將被設(shè)置為' true ')。
     */

    allowPrerelease: boolean;
    /**
     * *GitHub provider only.* Get all release notes (from current version to latest), not just the latest.
     * * GitHub提供者。
     *獲取所有發(fā)布說明(從當(dāng)前版本到最新版本),而不僅僅是最新版本。
     * @default false
     */

    fullChangelog: boolean;
    /**
     *是否允許版本降級(當(dāng)用戶從測試通道想要回到穩(wěn)定通道時(shí))。
     *僅當(dāng)渠道不同時(shí)考慮(根據(jù)語義版本控制的預(yù)發(fā)布版本組件)。
     * @default false
     */

    allowDowngrade: boolean;
    /**
     * 當(dāng)前應(yīng)用的版本
     */

    readonly currentVersion: SemVer;
    private _channel;
    protected downloadedUpdateHelper: DownloadedUpdateHelper | null;
    /**
     * Get the update channel. Not applicable for GitHub. Doesn't return `channel` from the update configuration, only if was previously set.
     * 獲取更新通道。
不適用于GitHub。
從更新配置不返回' channel ',只有在以前設(shè)置。
     */

    get channel(): string | null;
    /**
     * Set the update channel. Not applicable for GitHub. Overrides `channel` in the update configuration.
     *設(shè)置更新通道。
不適用于GitHub。
覆蓋更新配置中的' channel '。
     * `allowDowngrade` will be automatically set to `true`. If this behavior is not suitable for you, simple set `allowDowngrade` explicitly after.
“allow降級”將自動設(shè)置為“true”。
如果這個(gè)行為不適合你,簡單設(shè)置“allow降級”后顯式。
     */

    set channel(value: string | null);
    /**
     * 請求頭
     */

    requestHeaders: OutgoingHttpHeaders | null;
    protected _logger: Logger;
    get netSession(): Session;
    /**
     * The logger. You can pass [electron-log](https://github.com/megahertz/electron-log), [winston](https://github.com/winstonjs/winston) or another logger with the following interface: `{ info(), warn(), error() }`.
     * Set it to `null` if you would like to disable a logging feature.
     * 日志,類型有:info、warn、error
     */

    get logger(): Logger | null;
    set logger(value: Logger | null);
    /**
     * For type safety you can use signals, e.g. `autoUpdater.signals.updateDownloaded(() => {})` instead of `autoUpdater.on('update-available', () => {})`
     * 為了類型安全,可以使用signals
     */

    readonly signals: UpdaterSignal;
    private _appUpdateConfigPath;
    /**
     * test only
     * @private
     */

    set updateConfigPath(value: string | null);
    private clientPromise;
    protected readonly stagingUserIdPromise: Lazy < string > ;
    private checkForUpdatesPromise;
    protected readonly app: AppAdapter;
    protected updateInfoAndProvider: UpdateInfoAndProvider | null;
    protected constructor(options: AllPublishOptions | null | undefined, app ? : AppAdapter);
    /**
     * 獲取當(dāng)前更新的url
     */

    getFeedURL(): string | null | undefined;
    /**
     * Configure update provider. If value is `string`, [GenericServerOptions](/configuration/publish#genericserveroptions) will be set with value as `url`.
     * @param options If you want to override configuration in the `app-update.yml`.
     * 
     * 配置更新提供者。通過提供url
     * @param options 如果你想覆蓋' app-update.yml '中的配置。
     */

    setFeedURL(options: PublishConfiguration | AllPublishOptions | string): void;
    /**
     * 檢查服務(wù)其是否有更新
     */

    checkForUpdates(): Promise < UpdateCheckResult > ;
    isUpdaterActive(): boolean;
    /**
     * 
     * @param downloadNotification 詢問服務(wù)器是否有更新,下載并通知更新是否可用
     */

    checkForUpdatesAndNotify(downloadNotification ? : DownloadNotification): Promise < UpdateCheckResult | null > ;
    private static formatDownloadNotification;
    private isStagingMatch;
    private computeFinalHeaders;
    private isUpdateAvailable;
    protected getUpdateInfoAndProvider(): Promise < UpdateInfoAndProvider > ;
    private createProviderRuntimeOptions;
    private doCheckForUpdates;
    protected onUpdateAvailable(updateInfo: UpdateInfo): void;
    /**
     * 
     * 作用:開始下載更新包
     * 
     * 如果將`autoDownload`選項(xiàng)設(shè)置為false,就可以使用這個(gè)方法。
     * 
     * @returns {Promise<string>} Path to downloaded file.
     */

    downloadUpdate(cancellationToken ? : CancellationToken): Promise < any > ;
    protected dispatchError(e: Error): void;
    protected dispatchUpdateDownloaded(event: UpdateDownloadedEvent): void;
    protected abstract doDownloadUpdate(downloadUpdateOptions: DownloadUpdateOptions): Promise < Array < string >> ;
    /**
     * 作用:下載后重新啟動應(yīng)用程序并安裝更新。
     *只有在' update- downloads '被觸發(fā)后才會調(diào)用。
     *
     * 注意:如果在update-downloaded鉤子中,讓用戶選擇是否更新應(yīng)用,選擇不更新,那就是沒有執(zhí)行autoUpdater.quitAndInstall()方法。
     * 雖然應(yīng)用沒有更新,但是當(dāng)?shù)诙未蜷_應(yīng)用的時(shí)候,應(yīng)用檢測到本地有更新包,他就會直接更新,最后不會重啟更新后的應(yīng)用。
     * 
     * 為了解決這個(gè)問題,需要設(shè)置`autoInstallOnAppQuit`為false。關(guān)閉應(yīng)用自動更新。
     * 
     * **Note:** ' autoUpdater.quitAndInstall() '將首先關(guān)閉所有的應(yīng)用程序窗口,然后只在' app '上發(fā)出' before-quit '事件。
     *這與正常的退出事件序列不同。
     *
     * @param isSilent 僅Windows以靜默模式運(yùn)行安裝程序。默認(rèn)為false。
     * @param isForceRunAfter 即使無提示安裝也可以在完成后運(yùn)行應(yīng)用程序。不適用于macOS。忽略是否isSilent設(shè)置為false。
     */

    abstract quitAndInstall(isSilent ? : boolean, isForceRunAfter ? : boolean): void;
    private loadUpdateConfig;
    private computeRequestHeaders;
    private getOrCreateStagingUserId;
    private getOrCreateDownloadHelper;
    protected executeDownload(taskOptions: DownloadExecutorTask): Promise < Array < string >> ;
}

最后,希望大家一定要點(diǎn)贊、關(guān)注并轉(zhuǎn)發(fā)。

一個(gè)學(xué)習(xí)編程技術(shù)的公眾號。每周推送高質(zhì)量的優(yōu)秀博文、開源項(xiàng)目、實(shí)用工具、面試技巧、編程學(xué)習(xí)資源等等。目標(biāo)是做到個(gè)人技術(shù)與公眾號一起成長。歡迎大家關(guān)注,一起進(jìn)步,走向全棧大佬的修煉之路



瀏覽 219
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 一级黄色片视频| 五月色综合| 亚洲成人无码视频在线观看| 草比网| 蜜桃视频网站18| 国产美女AV| 69国产成人精品二区| 久草视频99| 亚州AV| 国产一卡二卡在线| 97精品欧美91久久久久久久| 欧美性受XXXX黑人XYX性爽一 | 风流老熟女一区二区三区| 黄色av免费看| 伊人网视频| 中文字幕在线观看AV| 欧美第一色| 国产又爽又黄视频| 日韩毛片在线视频x| 欧美性爱网址| 狠狠草视频| 日韩毛片一级| 无码高潮视频| 亚洲无码A区| 无码三级| 一级免费黄色电影| 91av视频在线| 蜜臀久久99精品久久久兰草影视| 久久久久久久网| 688AV秘无码一区二区| 最近中文字幕2022在线观看A | 亚洲草片| 伊人成人在线观看| 天堂中文网| A片在线观看免费| 无码成人在线| 天天操夜夜操狠狠| 免费啪啪视频| 亚洲精品国产精品乱码视99| 国产精品一区在线观看| 精品999| 97超级碰| 九九热这里有精品| 亚洲一在线| 亚洲免费在线看| 91视频导航| 国产高清视频在线观看| A视频在线免费观看| 亚洲撸撸| 色黄网站在线观看| 五月激情久久| 亚洲在线视频网站| 亚洲在线高清视频| 爱搞逼综合网| 久久亚洲AV| 干老女人视频| 日本天堂在线视频| 高清无码视频免费看| 狼友视频免费观看| 偷拍九九热| 人妻第一页| 高清无码视频在线播放| 久久久无码视频| 男女啪啪国产| 日韩精品无码电影| www激情| 日本少妇性爱视频| 国产欧美一区二区三区国产幕精品| 超碰人妻在线| 国产又粗又长的视频| 亚洲中文综合| 欧美特大黄| 9色在线| 亚洲中文字幕在线观看免费| 操骚逼视频| 久久久久99精品成人网站| 午夜av在线免费观看| 短发半推半就AV| 99久在线精品99re8热| 人妻无码久久精品| 中文字幕免费AV| 久久久久久久亚洲| 偷拍视频图片综合网| 成人一区二区在线| 国产精品超碰| 欧美日韩国产在线观看| 闺蜜av| 东京热第一页| 成人中文字幕无码| 日本黄色免费视频| 五月婷亚洲精品AV天堂| 成人精品亚洲人成在线| 北条麻妃人妻中文字幕91影视| 亚洲日韩久久| 91麻豆精品无码| 国产aa| 久久国产精品一区二区三区| 中文字幕理论片| 日日干天天| 中文字幕高清在线| 影音先锋中文字幕av| 国产又黄又爽| 一区二区成人免费视频| 欧美精品一区二区三区使用方法 | 91av无码| AAAAA毛片| 色欲一区二区| 日皮视频在线看| 国产一区二区三区四区五区在线| 欧美操逼网址| 国产精品VA| 伊人色播| 中文字幕无码日韩| 亚洲美女免费视频| 日本在线视频一区二区| 熟妇人妻丰满久久久久久久无码| 91久久国产综合久久91精品网站 | 成人伊人电影| 亚洲性无码| 国产熟女一区| 国产午夜视频在线| 影音先锋av无码| 精品美女视频在线观看免费软件 | 大香蕉操| 国产黄色在线免费观看| 亚洲精品中文字幕无码| 人妻av在线| 亚洲无码影音先锋| 成人免费无遮挡无码黄漫视频| 久久久国产精品视频| 91视频精品| 日韩视频中文字幕| 高清无码免费| 色色色色色色网站| 色综合网址| 久久精品操| 91嫩草久久久久久久| 特级爱爱视频| www99精品| 欧美偷拍一区| 蜜臀网| 天天操天天日天天射| 精品无码蜜桃| 国产成人无码精品| 亚洲AV大片| 亚洲天码中字| 日韩成人无码电影| 国产av中文字幕| 黄片大全在线观看| 女人天堂av| www.| 日本高清一区二区高清免费视频| 亚洲青草视频| 无码A级| 又大又粗AV| 人人操人人上| 伊人免费成人视频| 国产内射网站| 国产乱伦对白| 国产剧情在线| 一级黄色视频网站| 91福利在线观看| 亚洲色逼图片| 亚洲小电影在线观看| 久久综合久久鬼色| 丝袜二区| 特黄特色一级特黄大片| 久久久久久久久黄色| 翔田千里无码AV在线观看| 六月婷婷五月| 日韩WWW| 91无码人妻一区二区| 69成人无码| 不卡免费视频| 成人AV天堂| 欧美性爱小说| 国外成人视频| 亚洲高清视频一区| 小黄片在线免费观看| 91精品国产乱码久久久久| 天堂AV网站| 特级西西人体444www高清大胆| 久久久久99精品成人片三人毛片| 久久久久亚洲AV无码麻豆| 国产91精品在线观看| 午夜福利资源| 四川少妇搡BBBB搡BBB视频网 | 骚逼自拍| 欧美日逼片| 初尝人妻滑进去了莹莹视频| 操骚屄视频| 蜜臀一区二区三区| 翔田千里无码| 天天摸天天摸| 国产91在线拍揄自揄拍无码九色| 97精品人妻一区二区| 中文字幕在线观看日本| 日本二区三区| 嫩草在线观看| 伊人网在线观看| 91大神在线免费看| 大香蕉在线99| 亚洲精品白浆高清久久久久久| 一区二区成人视频| 91国产在线播放| 色草视频| 亚洲免费成人电影| 狼人香蕉网| 一本色道久久综合无码欧美| 久久久久成人电影| 夜夜狠狠躁日日| 四川BBB操BBB| 国产高清小视频| 黄片免费看网站| 久久久福利视频| 中文字幕无码AV| 久久青留社区金玉| 夜夜操狠狠操| 久久视频一区| av四虎| 国产在线观看国产精品产拍| 亚洲任你操超碰在线| 久久天堂影院| 免费A片在线看| AA久久| 成人自拍视频在线观看| 亚洲成人免费视频| 麻豆精品一区二区三区| 波多野结衣AV在线观看| 91丝袜一区二区三区| 最新中文字幕在线视频| AV黄色| 亚洲国产精品欧美久久| 欧美另类极品| 国产成人视频免费| 久久99深爱久久99精品| 操逼日韩欧美| 久草高清视频| 日本一本在线| 91在线无码精品秘蜜桃入口| 欧美视频在线观看| 在线观看免费高清无码| 无码中文在线| 日韩中文在线视频| 亚洲色图在线观看| 日韩黄色电影在线| 91亚洲国产成人久久精品网站| 中国一级黄色毛片| 污视频免费在线观看| 成人电影aaa| 人人操人人爱人人妻| 日日骚av一区二区三区| 中国一级A片| 日韩三级| 国产精品v欧美精品v日韩精品| 国产精品高清无码| 国产女人18毛片精品18水| 91无码精品久久久一区第1集| 日韩无码高清网站| 婷婷五月天丁香网| 欧美三级欧美成人高清| 久久6| 二级黄色视频| 99国产热| 日韩中文字幕无码| 国产一级操逼| 亚洲色涩| 四lll少妇BBBB槡BBBB| 青青草操逼视频| 6969电视影片最新更新| 一区二区三区在线视频观看| 五月婷婷网站| 日韩无码三级片| 日韩一区二区三区四区久久久精品有吗| 大香蕉伊人综合网| 亚洲有码在线| 黄色片免费看| 91福利影院| 翔田千里| 91精品久久香蕉国产线看观看 | 久热伊人| 日皮视频在线观看免费| 亚洲黄色视频网站在线观看 | 人妻无码人妻| 无码人妻精品一区二区三区99仓| 免费无码毛片一区二区A片小说| jizz日本护士| 中文字幕一二三区| 日韩性爱网| 欧美老妇大BBBBXXXX| 激情伊人五月天| 岛国无码在线观看| 俩小伙3p老熟女露脸| 中文字幕成人网站| www.国产精品| 欧美精品A级片| 久久国产精品精品国产色婷婷| 无卡无码| 日本高清视频九区| 中国丰满妇BBwBBwHD| 欧美日本国产| 偷拍92| 狠狠2021| 天天日天天射天天操| 亚洲丝袜不卡| 伊人黄色视频| 国产在线视频你懂的| 水果派解说A∨无码区| 影音先锋亚洲AV| 丁香五月激情视频| 国产精品视频久久久久| 人人摸人人操人人干| 国产一区二区AV| 日韩91在线视频| 亚州无码精品| 成人久久视频| 免费做爱视频网站| 亚洲精品18禁| 欧美v在线| 人人摸人人操人人摸| 国产草莓视频| 亚洲成人av在线| 国产精品特级毛片| 国产内射精品| 久久综合九九| 五月天激情av| 色婷婷免费视频| 成人毛片在线播放免费| 日本视频精品| 日本无码一区二区三区| 91人妻人人澡人人爽人人精品一 | 欧美亚洲日韩国产| 加勒比日韩在线| 国产伦精品一区二区三区视频女| 大香蕉中文在线| 久久久国产AV| 91av视频在线| 成人久操| 亚洲黄片大全| 女侠吕四娘第二部| 亚洲少妇免费| 91九九| 91porn国产| 色婷婷免费视频| 婬乱欧美一二三区| 婷婷综合素质二区| 亚洲无码天堂| 2024AV在线| 久久国内视频| 在线观看中文字幕一区| 日本爱爱免费视频| 51亚洲精品| 天天色AV| 懂色av粉嫩AV蜜臀AV| 国产成人午夜高潮毛片| 日韩精品人妻一区二区| 中文资源在线观看| 成人国产综合| 精品久草| 成人久久精品| 97人妻一区二区精品免费视频| 波多野结衣东京热| 91在线无码精品秘网站| 乱子伦国产精品www| 欧美成人毛片| 中文字幕巨肉乱码中文乱码| 中文字幕在线免费视频| 日韩日逼网站| 亚洲精品第一页| 成人性生活影视av| 四虎在线观看一区网址| 成人区色情综合小说| 精品一区二区三区在线观看 | 亚洲无码免费视频在线观看| 91视频免费播放| 亚洲午夜无码精品专区| www.婷婷六月天| 龙泽美曦土豪| 97精品人妻一区二区三区在线| 亚洲秘AV无码一区二区qq群 | 秋霞久久日| 囯产精品久久久久久久久免费无码 | 91嫖妓站街按店老熟女| 狠狠干在线| 福利导航视频| 婷婷五月天AV| 豆花视频一区二区| 午夜A片| 婷婷午夜精品久久久久久性色| 天天操天天操天天操| 99熟女| 专区无日本视频高清8| 国产嫩草影院| 午夜操逼视频| 国产乱子伦真实精品!| 蜜桃视频无码| 尤物网站在线观看| 四虎精品一区二区三区| japanese在线观看| 国产精品自拍视频| 日韩WWW| 欧美色图15p| 少妇搡BBBB搡BBB搡造水多/| 国产一级片| 老婆被黑人杂交呻吟视频| 国产色秘乱码一区二区三区| 无码人妻精品一区二区三区蜜臀百度| 人人操人人干人人| 91亚洲精品乱码久久久久久蜜桃 | 亚洲成人免费| 日韩无码高清免费| 日本免费在线| 奇米无码| 日韩无码成人| 国产毛片777777| 北条麻妃久久视频在线播放| 日韩精品免费在线观看| 亚洲AV无码乱码AV| 思思热视频在线观看| 老司机在线免费视频| 日韩高清无码不卡| 91人妻一区二区三区| 九九乱伦| 69久久成人精品| 99视频在线播放| 日美女网站| 操逼视频,黄色大全| 69婷婷国产精品| 水蜜桃视频网站在线观看| 无码四区| 欧美熟妇另类久久久久久不卡| 中国老女人操逼| 黄片视频在线播放| 伊人狼人香蕉| 婷婷五月欧美| 中文字幕视频在线直播| 久久这里都是精品| 三区在线观看| 一本大道东京热av无码| 2014av天堂网| 综合天堂网| 欧美色视频在线观看| 国产一级黄色A片| www.国产在线观看| 天堂网2025| 天天爽夜夜爽夜夜爽精品视频| 国产黄色视频在线观看免费| 国产a一级a毛一级视频| 欧美性69| 日韩毛片大全| AV资源在线| 欧美日韩不卡视频| 九九九九精品视频| 日韩超碰在线| 国产aaaaaaaaaa| 日本免费高清视频在线观看一区| 伊人狠狠蜜桃亚洲综合| 人人操91| 香蕉一区| 俺也去网站| 日国无码| 骚逼操| 色综合天| 成人自拍视频| 大香蕉96| 国产性综合| 西西444WWW无码大胆| 成人无码影院日韩,成人年…| 韩日一级片| 水蜜桃网站在线观看| 鸭子av| 99精品视频在线播放免费| 成人理伦A级A片在线论坛| 亚洲黄色视频免费| 黄色福利在线观看| 99热国品| 在线免费观看国产| 激情综合五月| 91在线免费播放| 亚洲一区| 午夜无码人妻AV大片| av東熱激情东京热| www.97yy| 青青草视频| 国产精品视频在线播放| 日韩第一区| 国产精品911| 国产内射久久| 青青草无码成人AV片| 三级网站免费观看| 欧美熟妇另类久久久久久不卡| 国产无码高清| 高清无码中文字幕在线观看| 欧美老妇另类BBwBBw| 逼特逼| 日本高潮视频| 欧美亚洲国产视频| 麻豆黄网| 国产777777| 超碰免费观看| 污视频网站免费观看| 天堂A片电影网站在线观看| 日韩高清无码不卡| 色婷婷激情综合网| 91亚洲国产成人| 免费亲子乱婬一级A片| 午夜亚洲福利| 日本色情在线| 东京热综合| 自拍三级片| 精品中文在线| 一本久道综合| 成人无码一区二区| 91丨露脸丨熟女抽搐| AV高清无码在线观看| 日韩无码三级片| 无码不卡在线观看| www.日韩av| 91久久久久久久91| 天堂a√中文8| 加勒比精品在线| 免费无码婬片AAAA片在线蜜芽| 日产精品久久| 丁香五月欧美| 四虎在线观看一区网址| 色婷婷成人网| 欧美在线观看网站18| 波多野结衣成人视频| 丁香婷婷五月色成人网站| 免费无码婬片aaaa| 综合网视频| 国产做受91| 亚洲激情黄色| 蜜芽成人精品久久久视频| 久久精品综合| 嫩BBB嫩BBB嫩BBB| 天天拍天天操| 午夜福利视频3000| 大屌av| 特级西西人体大胆无码| 人妻精品在线| 亚洲中文字幕有码| 成人国产精品秘欧美高清| 婷婷五月天社区| 国产三级午夜理伦三级| 欧美乱伦内射| 老妇bbw| 欧美性爱一区| 在线亚洲欧美| 色色操| 伦理无码| 伊人大香蕉网| 黑人操白人| 色老板在线观看视频| 操逼网视频| 国产一区二区三区在线| 日韩欧美中文在线| 狠狠躁日日躁夜夜躁2022麻豆| 国产91在线看| 51XX嘿嘿午夜| 欧美日韩成人在线| AV天堂无码| 可以看的毛片| 婷婷丁香五月花| 国产日韩欧美综合精品在线观看| 国产精品一二三区夜夜躁| 欧美久久精品| 久草黄色| 91欧美精品成人综合在线观看| 大香蕉伊人影视| 操逼精品| 成人一级视频| 性爱福利视频| 亚洲码无人客一区二区三区| 午夜视频成人| 体内射精免费视频| 国产在线一区二区| 正在播放国产精品| 日韩免费成人| 四川BBB搡BBB爽爽爽电影| 亚洲狼人久久久精品| 内射午夜福利在线免费观看视频| 亚洲色综合| 欧美一级特黄A片免费| 九九综合网| 国产精品久久久久久99| 大香蕉伊人免费| 亚洲小说图片AV在线| 日韩一级免费视频| 91人妻人人澡人人爽人人精品乱| 欧美日韩在线视频免费观看| 国产无遮挡又黄又爽又色视频软件 | 影音先锋AV啪啪资源| 国产成人va| 最新中文字幕在线观看视频| 在线观看一区二区三区四区| 91三级片在线播放| 日韩无码视频二区| i美女福利视频| av在线免费播放| 国产玖玖| 亚洲综合中文字幕在线| 自拍三区| 日本久久播| 天天撸天天色| 亚洲乱码国产乱码精品天美传媒 | 亚洲影视中文字幕| 偷窥美鲍| 青草福利| 这里都是精品| 99爱爱| 老女人日逼视频| 色综合加勒比| 午夜第一页| 在线无.码| 高潮91PORN蝌蚪九色| 性爱无码AV| 久久毛久久久j| 国产无码内射| 色五月激情五月| www欧美| 国产在线高潮| 蜜臀av在线观看| 想要xx在线观看| 日日干AV| 国产在线看片| 91精品午夜少妇| 粉嫩AV在线| 免费黄片视频大全| 波多野结衣vs黑人巨大| 国产欧美一区二区三区视频| jizz亚洲| 国产高清无码视频在线观看| 久久99热这里只频精品6学生| 91九色视频| 少妇熟女一区| 一级黄色网| 欧美性BBB槡BBB槡BBB| 99精品全国免费观看| 午夜天堂在线观看| 国产精品日韩高清北条麻衣| 三级成人视频| 搡BBB搡BBBB搡BBBB'| 97人人爽人人爽人人爽| 亚洲va欧美va| 夜夜撸天天日| 麻豆精品一区二区三区| 日韩二| 欧美不卡在线播放| 99精品视频在线观看| 天天色视频| 亚洲天堂在线免费观看| 蜜桃网站| 人人妻人人澡人人爽人人DVD| 婷婷丁香五月激情| 天堂操逼| 天天撸天天干| 丁香五月婷婷网| 免费一级a| 亚洲国产精品成人久久蜜臀| 亚洲人妻无码一区| 亚洲区欧美区| 无码探花| 亚洲精品久久久久久久久久久 | 日韩久久综合| 日韩AV中文字幕在线| 99热播| 伊人综合网站| 黄色a视频| 偷拍777| 日韩亚洲欧美在线观看| 可以免费观看的av| 亚洲AV大片| 午夜成人福利剧场| 无码潮喷| 中文字幕手机在线视频| 成人小视频在线| 亚洲国产成人在线视频| 亚洲欧美国产高清vA在线播放| 少妇A片| 爱草在线| 午夜天堂精品久久久久9| 日韩无码AV一区二区三区| 狠狠狠狠狠狠干| 91精品婷婷国产综合久久蝌蚪| 中文字幕日韩一级| AV第一福利大全导航| 4438黄色| 在线视频一区二区| 午夜日逼网站| 亚洲中文字幕在线视频播放| 九九九欧美| 免费操逼电影| 操比视频在线观看| 久草在线播放| 97大香蕉视频| 日本一本不卡| 国产高清无码一区二区| 国产在线拍揄自揄拍无码网站新闻 | 欧美一区视频| 欧美精品在线播放| 特级444WWW大胆高清| 色综合99| 国产无码专区| 操一操| 人妻少妇偷人精品无码免费| 六月丁香五月天| 中文字幕免费看高清| 久久无码影视| 四川BBB搡BBB爽爽爽欧美| 国产夫妻自拍av| 啊啊啊在线| 亚洲黄色小电影| 人妻黑人一区二区三区| 天天天天日天天干| 五月丁香视频在线观看| 无码内射在线播放| 成人无码免费一区二区中文| 国产精品无码ThePorn| 手机av免费| 91欧美日韩综合| 亚洲精品蜜桃| 性久久久久| 毛片网站在线观看| 婷婷五月在线| 激情日逼| 国产特黄级AAAAA片免| 欧美一区在线视频| 男人V天堂| 少妇高潮喷水| 日韩熟妇无码中文字慕| 国产AV大片| 亚洲高清无码中文字幕| 国产久久这里只有精品视频| 色婷婷视频在线观看| 色图在线观看| 国产精品视频瘾无码| 一级a一级a爰片免费免免在线 | 欧美熟妇一区二区| 俺去也在线视频| 无码中文字幕在线播放| 日逼www| 制服丝袜人妻| 成人毛片网| 无码人妻丰满熟妇精品区| 亚洲无码A区| www99精品| 我想看操逼| 午夜福利影视| 黄色片一级| AAA片| 无码三级视频| 欧洲三级片网站| 亚洲无码A区| 波多野结衣操逼| 日韩黄色一级| 91成人大片| 亚洲无码视频网站| 婷婷天堂站| 天天色天天色| 苍井空中文字幕在线观看| 在线免费观看av网站| 日韩欧美一级二级| 国产又爽又黄免费网站在线| 天天干天天日天天| 牛牛Av| 亚洲天堂无码| 久操精品视频| 香蕉视频成人在线观看| 久久久精品网站| 永久免费一区二区| 一本色道久久综合亚洲精品久久| 国产va| 国产91在线中日| 操逼免费观看视频| 老太老熟女城中层露脸60| 91热久久| 亚洲香蕉在线观看| 狠狠躁日日躁夜夜躁A片无码视频| 秒播福利| 国产精品国产三级国产专区52| 特级西西人体444www高清| 天天干天| 人妻无码一区二区三区摄像头| 国产无码免费视频| 淫荡97| 天堂成人网站| 天天看天天爽| 超碰爱爱| 免费一级黄色视频| 波多野结衣无码视频| 中文字幕永久在线视频v1.0| 久久久久久久久久久久高清毛片一级 | 黄片网页| 久久伊人影院| 精品人妻一区二区三区四区不卡在 | 福利网址| 国产欧美精品| 一区无码| 国产亚洲综合无码| 日韩AV大片| 老司机一区二区三区| 国产porn| 五月婷婷丁香| 日韩精品成人在线视频| 综合色色婷婷| 2025av天堂网| 国产AA| 91牛视频| 国产精品人人| 色视频在线观看免费| 亚洲AV无码精品| 亚洲成人一区二区三区| 日韩三级中文| 在线看v片| 九九热re99re6在线精品| 91中文在线| 亚洲图片激情乱伦小说| 日韩欧美大香蕉| 不卡a12| 日韩精品三级片| 色老板在线观看| 五月天AV网站| 成人在线激情| 躁BBB躁BBB躁BBBBB乃| 欧美天天| 日韩无码高清网站| 97人人操人人| 欧美日韩v| 日韩无码一二三| 操逼不卡视频| 国产日韩二区| 三级网站免费观看| 国产成人午夜| 久久99无码| 北条麻妃一区二区三区在线播放| 色综合久久天天综合网| 综合网伊人| 天堂无码视频在线播放| 欧美一级一区| av无码电影| 在线免费观看黄片| 高清无码视频免费版本在线观看 | 九九碰九九爱97超碰| 亚洲无码高清在线观看| 韩日成人| 在线观看视频你懂的| 2025av天堂| 黄色片在线免费观看| 嫩草99| www.18av| AV天堂亚洲| 天天色小说| 成人在线一区二区三区| 色色国产| 欧洲黑种人日P视频| 国产精品人人| 丁香五月婷婷在线| 操逼在线观看| 中国操逼电影| 在线观看的av网站| 熟妇导航| 日日夜夜草| 无码无码无码| www.婷婷五月天| 亚洲日韩一区二区三区| 开心激情婷婷| 91中文在线| 中文字幕五月久久婷婷| 久草视频福利在线| 第四色大香蕉| 无码乱伦AV| 大香蕉在线网站| 91精品丝袜久久久久久久久久粉嫩| 国产精品18进进出出17c| 亚洲综合视频网| 操bbbb| 特黄视频| 久久国产精品电影| 性饥渴熟妇乱子伦| 开心激情站| 欧美色女人| 熟女久久| 丁香婷婷男人天堂| 手机AV在线观看| 黄色大片免费观看| 日韩99在线观看| 三级毛片在线| 久久黄片| 精产国品一区二区| 欧美国产性爱| 国产美女自慰网站| 青草香蕉视频| 日本一区二区三区在线观看网站| 91香蕉在线| 苍井空一区二区三区四区| 亚洲AV无一区二区三区久久| 夜夜骚精品人妻av一区| 欧美性性性| 亚洲黄片视频|