我只有订阅用户的页面。我尝试使用 Revenuecat 来了解用户是否订阅并进行购买。但我想我犯了错误。
我想在下面进行购买,但出现错误。
'''
公共类 VipPreferences 扩展 AppCompatActivity {
ImageView back, threemonthsvip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vip_preferences);
getSupportActionBar().hide();
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
Purchases.setDebugLogsEnabled(true);
Purchases.configure(this, "api_key");
back=(ImageView)findViewById(R.id.back);
threemonthsvip=(ImageView)findViewById(R.id.threemonthsVip);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
VipPreferences.super.onBackPressed();
}
});
threemonthsvip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Purchases.getSharedInstance().purchasePackage(this,package,new MakePurchaseListener() {
@Override
public void onCompleted(@NonNull Purchase purchase, @NonNull PurchaserInfo purchaserInfo) {
if (purchaserInfo.getEntitlements().get("Vip").isActive()) {
// Unlock that great "pro" content
Toast.makeText(VipPreferences.this, "Congratulations! Your payment is successful.", Toast.LENGTH_SHORT).show();
Intent intent=new Intent(VipPreferences.this,Vip.class);
startActivity(intent);
}
}
@Override
public void onError(@NonNull PurchasesError error, boolean userCancelled) {
Toast.makeText(VipPreferences.this, "Something were wrong", Toast.LENGTH_SHORT).show();
}
});
}
});
}
} '''
下面我检查 setOnClickListener 中的订阅状态,并尝试如果未订阅,则尝试打开购买选项,如果订阅,则打开活动。但是当我在应用程序运行时单击时,应用程序会直接关闭。
''' 公共类 MainActivity 扩展 AppCompatActivity {
ImageView showFree,showVip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
Purchases.setDebugLogsEnabled(true);
Purchases.configure(this, "api_key");
showFree=(ImageView)findViewById(R.id.showFree);
showVip=(ImageView)findViewById(R.id.showVip);
showFreeTips.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,Free.class);
startActivity(intent);
}
});
showVip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Purchases.getSharedInstance().getPurchaserInfo(new ReceivePurchaserInfoListener() {
@Override
public void onReceived(@NonNull PurchaserInfo purchaserInfo) {
if (purchaserInfo.getEntitlements().get("Vip").isActive()) {
// Grant user "pro" access
Intent intent=new Intent(MainActivity.this,Vip.class);
startActivity(intent);
}else {
Intent intent=new Intent(MainActivity.this,VipPreferences.class);
startActivity(intent);
}
}
@Override
public void onError(@NonNull PurchasesError error) {
}
});
}
});
}
'''