所以我使用 flutter 进行应用程序开发(显然,标题),这是一个付费应用程序,因此需要验证许可证。我正在使用 MedthodChannel 来实现此目的,因为我无法找到颤振本身的方法。
现在的问题是:所以在Java方面,我正在检查许可证验证,然后将结果发送到flutter。这就是方法通道的工作原理。但问题是,即使在验证完成之前,结果也会发送到 flutter,因此 flutter 部分认为许可证没有经过验证,即使是这样。
我在下面附上java端代码
包在.navkargems.diamondtools;
导入 android.os.Bundle;
导入 android.os.Handler;
导入 android.provider.Settings;
导入 android.util.Log;
导入 com.google.android.vending.licensing.LicenseChecker;
导入 com.google.android.vending.licensing.LicenseCheckerCallback;
导入 com.google.android.vending.licensing.StrictPolicy;
导入 io.flutter.app.FlutterActivity;
导入 io.flutter.plugin.common.MethodCall;
导入 io.flutter.plugin.common.MethodChannel;
导入 io.flutter.plugins.GeneratePluginRegistrant;
公共类 MainActivity 扩展 FlutterActivity {
私有静态最终字符串CHANNEL =“in.navkargems.diamondtools/verify”;
私有静态最终字符串_key_to_verify_base64 =“MIIBIjAN ...”;
私有处理程序mHandler;
私有许可证检查器 mChecker;
私有 LicenseCheckerCallback mLicenseCheckerCallback;
布尔许可;
布尔检查许可证;
布尔值 didCheck;
int 消息 = 0;
@覆盖
protected void onCreate(Bundle savingInstanceState) {
super.onCreate(savedInstanceState);
generatedPluginRegistrant.registerWith(this);
new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
新的 MethodChannel.MethodCallHandler() {
@覆盖
公共无效onMethodCall(MethodCall methodCall,MethodChannel.Result结果){
if (methodCall.method.equals("verifyLicense")) {
String deviceId = … 所以我正在导出在我的应用程序中创建的扩展名为 .abc 的文件
现在,如果用户在 whatsapp 或电报或任何其他平台上共享文件,并且当其他用户尝试打开文件时,“打开方式”对话框应该与我的应用程序一起出现在列表中。
我尝试了以下方法,但它不起作用,而且它仅适用于 Android,我正在为此寻找多平台解决方案。
是否可以将 Flutter 应用程序注册为 Android 意图过滤器并处理传入的意图?
我能够使用上述方法编译应用程序,但无法使用我的应用程序名称填充“打开方式”对话框
感谢您的时间。
编辑 1:
所以我已经成功地为 android 添加了这个功能,但我仍在尝试为我的 iPhone 用户添加相同的功能。
有人可以帮我处理 iOS 中的 swift 代码部分吗?我不熟悉 swift 语言,但我希望我的用户能够在两个平台上使用相同的功能。