lingxia 0.7.1

LingXia - Cross-platform LxApp (lightweight application) framework for Android, iOS, and HarmonyOS
use lingxia_service::applink::AppLinkTarget;
use lxapp::{LxAppStartupOptions, Scene};

pub(crate) fn install_handler() {
    lingxia_service::applink::register_handler(open_target);
}

fn open_target(target: AppLinkTarget) -> i32 {
    log::info!(
        "AppLink accepted: appid={}, path={}, releaseType={}",
        target.appid,
        target.path,
        target.release_type
    );

    let appid = target.appid.clone();
    let options = LxAppStartupOptions::new(&target.path)
        .set_query(target.query)
        .set_release_type(target.release_type)
        .set_scene(Scene::AppLink);
    let release_type = target.release_type;

    let _ = rong_rt::RongExecutor::global().spawn(async move {
        if let Err(err) = lxapp::prepare_lxapp_open(&appid, release_type).await {
            log::warn!("AppLink prepare failed for {}: {}", appid, err);
            return;
        }
        if let Err(err) = lxapp::open_lxapp(&appid, options) {
            log::warn!("AppLink open failed for {}: {}", appid, err);
        }
    });
    1
}