一键跳转快手和抖音,轻松查看用户页面

28

主题

184

回帖

581

积分

管理员

积分
581

1.这是一段快手的意图跳转例子

// 导入包
importClass(Packages.android.content.Intent);
importClass(Packages.android.net.Uri);
importClass(Packages.android.content.ActivityNotFoundException);
importClass(Packages.android.widget.Toast);
importClass(Packages.android.os.Handler);
importClass(Packages.android.os.Looper);

// 设置快手用户页面的URL
var userId = "2037335125";
var url = "kwai://profile/" + userId;

try {
    // 使用安卓intent跳转
    var intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
} catch (e) {
    if (e.toString().indexOf("android.content.ActivityNotFoundException") !== -1) {
        // 提示用户安装快手应用或提供网页链接
        showToast("未找到快手应用,请确保已安装。");
        // 或者提供一个网页链接作为替代
        var webUrl = "https://www.kwai.com/profile/" + userId;
        var webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(webUrl));
        webIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(webIntent);
    } else {
        showToast("发生错误: " + e.message);
    }
}

// 自定义showToast方法
function showToast(message) {
    new Handler(Looper.getMainLooper()).post(function() {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    });
}

这段代码是用于在安卓设备上通过Java Script尝试打开快手应用中的某个用户个人页面。如果设备上没有安装快手应用,则会显示一个短时的Toast提示信息,告知用户未找到快手应用,并尝试通过浏览器打开快手的网页版用户个人页面。

代码的主要步骤如下:

  1. 导入必要的安卓类。
  2. 设置要访问的快手用户ID,并构建快手应用内链接URL。
  3. 创建一个Intent对象,设置为查看动作,并指定URI为快手用户页面的URL。
  4. 设置Intent标志为FLAG_ACTIVITY_NEW_TASK,以确保即使从后台服务启动,也能创建新的任务栈。
  5. 使用context.startActivity()方法尝试启动Intent。
  6. 如果遇到android.content.ActivityNotFoundException异常,表示设备上没有安装快手应用,此时会显示一个Toast提示信息,并构建快手网页版用户个人页面的URL,再次创建一个Intent对象尝试打开网页。
  7. 如果遇到其他异常,会显示包含错误信息的Toast提示。
  8. 自定义showToast方法,利用Handler和Looper确保Toast在主线程中显示,因为安卓UI操作必须在主线程中进行。

2.这是抖音的意图跳转例子。

// 导入包
importClass(Packages.android.content.Intent);
importClass(Packages.android.net.Uri);
importClass(Packages.android.content.ActivityNotFoundException);
importClass(Packages.android.widget.Toast);
importClass(Packages.android.os.Handler);
importClass(Packages.android.os.Looper);

// 设置抖音用户页面的URL
var userId = "xyz123"; // 请替换为实际用户ID
var url = "snssdk1128://aweme/detail/" + userId;

try {
    // 使用安卓intent跳转
    var intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
} catch (e) {
    if (e.toString().indexOf("android.content.ActivityNotFoundException") !== -1) {
        // 提示用户安装抖音应用或提供网页链接
        showToast("未找到抖音应用,请确保已安装。");
        // 或者提供一个网页链接作为替代
        var webUrl = "https://www.douyin.com/user/" + userId; // 替换为实际的用户网页链接
        var webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(webUrl));
        webIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(webIntent);
    } else {
        showToast("发生错误: " + e.message);
    }
}

// 自定义showToast方法
function showToast(message) {
    new Handler(Looper.getMainLooper()).post(function() {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    });
}

代码结构与功能

  1. 导入必要的安卓类

    • Intent:用于启动活动。
    • Uri:处理URI(统一资源标识符)。
    • ActivityNotFoundException:用于捕获活动未找到的异常。
    • Toast:用于在屏幕上显示短暂的消息。
    • HandlerLooper:用于处理UI线程中的任务。
  2. 设置用户页面的URL

    • userId指定需要访问的抖音用户ID。
    • url构建要访问的URI,格式为snssdk1128://aweme/detail/{userId}
  3. 尝试使用Intent启动抖音应用

    • 创建一个Intent对象,用于启动ACTION_VIEW操作,同时解析为之前构建的URL。
    • 设置标志为FLAG_ACTIVITY_NEW_TASK,确保活动在新任务中启动。
    • 调用context.startActivity(intent)尝试启动抖音的活动。
  4. 异常处理

    • 捕获ActivityNotFoundException,用于检测设备上是否安装了抖音应用。
    • 如果未安装,显示一个Toast提示用户安装应用,并提供一个网页版的链接作为替代。如果网页链接也未能处理,将使用showToast方法显示错误信息。

visitFile&sign=3f92189f5df1ceee30749a0bb1a3b0b7.jpg


举报 回复