初级代码游戏的专栏介绍与文章目录-CSDN博客
我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。
源码指引:github源码指引_初级代码游戏的博客-CSDN博客
C#是我多年以来的业余爱好,新搞的东西能用C#的就用C#了。
在尝试了改用WinUI3之后,仍然无法正常打开商店链接,所幸商店web链接是可以打开的,但是——商店的web链接只能用于应用而不能用于加载项,所以内购仍然是无法实现的。
尝试了按照桌面桥来处理,竟然解决了内购问题。
目录
一、用HyperlinkButton打开商店链接(只能web商店)
二、代码打开商店链接(可以打开商店应用)
三、内购 加载项(按照桌面桥处理即可打开内购界面)
一、用HyperlinkButton打开商店链接(只能web商店)
商店链接位于合作伙伴中心的应用下面的:
有两个链接,一个是商店app的,一个是web版的商店的。
在窗口上放两个超链接按钮:
<StackPanel Orientation="Horizontal"><HyperlinkButton Content="WebStore" NavigateUri="https://apps.microsoft.com/detail/9P4DJBGG80XV"/><HyperlinkButton Content="AppStore" NavigateUri="ms-windows-store://pdp/?productid=9P4DJBGG80XV"/></StackPanel>
得到两个按钮:
点“WebStore”按钮就会打开浏览器跳转到指定的商店页面,点击“AppStore”什么也不会发生(沮丧,是吧?劝退劝退)。
因为加载项是没有链接的,所以无法实现简单跳转。
二、代码打开商店链接(可以打开商店应用)
前面用HyperlinkButton打开商店app是无效的,但是用代码却是可以的:
_= Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store://pdp/?productid="+ StoreID));
这实在是有点摸不到头脑。
三、内购 加载项(按照桌面桥处理即可打开内购界面)
内购之前用winforms是失败的,打不开商店,改用WinUI3也不行。
状况就是检索应用信息没问题,获取用户订购状态没问题,走到RequestPurchaseAsync这一步就不会返回了,因为这是异步操作,程序继续,操作永远不会返回,也没有报错。
内购非常重要,最好应用以免费加内购的方式提供,而不是试用版,一看需要购买用户就走了,根本不试用。
尝试一下按照桌面桥处理看看效果。
桌面桥处理:
context = StoreContext.GetDefault();//Desktop Bridge{// Obtain window handle by passing in pointer to the window objectvar hwnd = WinRT.Interop.WindowNative.GetWindowHandle(windowObject);if (hwnd == IntPtr.Zero) {sbState.AppendLine("hwnd == IntPtr.Zero");}// Initialize the dialog using wrapper function for IInitializeWithWindowWinRT.Interop.InitializeWithWindow.Initialize(context, hwnd);}
哭死,终于出现了:
哪个文档说了WinUI3程序是桌面桥应用????
(这里是文档结束)