EasyClick URL schema 跳转

/**
 * URL schema 跳转
 * <Br/>
 * 运行环境: 无限制
 * <Br/>
 * 兼容版本: Android 5.0 以上
 * @param url
 * @returns {boolean} true 成功 或 false 失败
 */
URL_intent = function (url) {
    importClass(android.content.Intent);
    importClass(android.net.Uri)
    let intent = new Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.setData(Uri.parse(url))
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try {
        context.startActivity(intent);
        return true;
    } catch (e) {
        loge(e)
        return false;
    }
}
let QQ= 777164022;
logd(URL_intent("mqqapi://card/show_pslcard?src_type=internal&version=1&uin=" + QQ+ "&key=44a6e01f2dab126f87ecd2ec7b7e66ae259b30535fd0c2c25776271e8c0ac08f&card_type=group&source=external"));//777164022

let QQ = 3300565703;
logd(URL_intent("mqq://im/chat?chat_type=wpa&uin=" + QQ + "&version=1&src_type=web"));

我是EC_老PU
专注EasyClick 自动化 喜欢我的文章请给个小心心,点个关注谢谢!
---------------------------------------版权声明------------------------------------------------------
版权所有~EC_老PU ~转载请注明原文地址

由于没有确切的拼多多身份码URL Schema,下面以通用的URL Schema跳转示例说明在不同平台代码中实现跳转的方法。 #### Android平台 在Android中,可以使用`Intent`来实现通过URL Schema跳转。示例代码如下: ```java import android.content.Intent; import android.net.Uri; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 假设这是拼多多身份码的URL Schema String schemaUrl = "pinduoduo://identitycode/xxxx"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(schemaUrl)); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } } } ``` 也可以使用`adb`命令在Android自动化测试中实现跳转,代码如下: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class AndroidSchemaJump { public static void main(String[] args) { String udid = "yourDeviceId"; String schemaUrl = "pinduoduo://identitycode/xxxx"; String command = "adb -s " + udid + " shell am start -a 'android.intent.action.VIEW' -d " + "'" + schemaUrl + "'"; try { Process process = Runtime.getRuntime().exec(command); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } ``` #### iOS平台 在iOS中,可以使用`UIApplication`来实现跳转。示例代码如下: ```swift import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 假设这是拼多多身份码的URL Schema let schemaUrl = "pinduoduo://identitycode/xxxx" if let url = URL(string: schemaUrl) { if UIApplication.shared.canOpenURL(url) { if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:], completionHandler: nil) } else { UIApplication.shared.openURL(url) } } } } } ``` 在iOS自动化测试中,相关代码示例如下: ```java import java.util.concurrent.TimeUnit; public class IosSchemaJump { public static void main(String[] args) { String udid = "yourDeviceId"; String schemaUrl = "pinduoduo://identitycode/xxxx"; String[] cmd = {"/usr/local/bin/idevicedebug", "-u", udid, "run","com.apple.test.WebDriverAgentRunner-Runner"}; try { Process process = Runtime.getRuntime().exec(cmd); process.waitFor(10, TimeUnit.SECONDS); // 这里可以继续处理后续操作,例如使用AppiumDriver打开URL } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值