当前位置: 首页 > 知识库问答 >
问题:

如何从浏览器控制移动屏幕?

陈高寒
2023-03-14

更新
引用:perfecto mobile和device

我正在研究一个基于云的移动测试解决方案,应该支持iOS和Android。它要求连接的移动设备从浏览器处理。

我了解到移动设备有一种代理程序(它要求设备根植)安装,

  • 将移动屏幕流到浏览器
  • 并注入事件

有没有其他方法可以在不破坏设备的情况下实现这一点?

任何指针都是赞赏的。

更新1:
这个问题接近我正在寻找的。

更新2:我已经为Android设备找到了Android屏幕库,并在几个设备上进行了测试。它不要求设备根植,但要求在每次设备重启时从命令行重新启动服务,并且无法在Lollipop上工作..

谢谢

共有1个答案

汪理
2023-03-14

使用WebKit,这将让你尽可能接近你能得到的,仍然很可能通过苹果的批准过程

这里有一个简单的例子,这基本上是在网页上做一个选择器,在应用程序上发送字符串值给我,你处理那个值并发回结果,然后作为网页的标题发布。

<h2 id="headline">loading...</h2>
<select id="selector">
    <option value="systemVersion" selected>iOS Version</option>
    <option value="systemName">System Name</option>
    <option value="name">Device Name</option>
    <option value="model">Device Model</option>
    <option value="userInterfaceIdiom">User Interface</option>
    <option value="identifierForVendor">Vendor ID</option>
</select>

下面是JavaScript:

var headline = $("#headline");
var selection = $("#selector");

function set_headline (text) {
    headline.text(text);
}

function call_native () {
    var prop = selection.val();
    set_headline("asked for " + prop + "...");
    window.webkit.messageHandlers.observe.postMessage(prop);
}

setTimeout(call_native, 1000);
selection.on("change", call_native);

在应用程序端,您可以设置以下内容:

[controller addScriptMessageHandler:self name:@"observe"];
configuration.userContentController = controller;
NSURL *jsbin = [NSURL URLWithString:k_JSBIN_URL];

_webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:configuration];
[_webView loadRequest:[NSURLRequest requestWithURL:jsbin]];
[self.view addSubview:_webView];

处理webView事件:

-(void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
{
// Check to make sure the name is correct
    if ([message.name isEqualToString:@"observe"]) {
        // Log the message received
        NSLog(@"Received event %@", message.body);

        // Then pull something from the device using the message body
        NSString *version = [[UIDevice currentDevice] valueForKey:message.body];

        // Execute some JavaScript using the result
        NSString *exec_template = @"set_headline(\"received: %@\");";
        NSString *exec = [NSString stringWithFormat:exec_template, version];
        [_webView evaluateJavaScript:exec completionHandler:nil];
    }
}
 类似资料:
  • 本文向大家介绍javascript实现控制浏览器全屏,包括了javascript实现控制浏览器全屏的使用技巧和注意事项,需要的朋友参考一下 功能很简单,代码也很简洁,这里就不多废话了 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 是否可以从Linux终端访问开发者工具(Chrome/Firefox)控制台以进行脚本编写? 我试图从我的浏览器访问AngularJS应用程序的变量,这样我就可以快速浏览文件。例如,我可以要求,及其相关的,等;一旦我找到结果,我会在编辑器中打开该文件。 我正在探索的其他选择是使用某种无头浏览器。另外还有一个开发工具协议,它被木偶师等工具用来编程访问Chrome开发工具。 一个简单的节点REPL就足

  • 我正在用HTML/JavaScript开发一个web应用程序,我想阻止用户调用他们浏览器控制台中的函数,以避免作弊。所有这些函数都包含在一个名为的唯一文件中,该文件加载在文件的头部。 在网上搜索后,我找到了这个解决方案,它在Google Chrome上运行良好,但在其他浏览器(如Firefox)上效率很低: 有没有一个通用的方法来禁用控制台的函数调用?它是否依赖于浏览器,还是仅仅是一个范围的问题,

  • 问题内容: 我正在寻找一个函数,如果用户具有移动浏览器,该函数将返回布尔值。 我知道我可以通过使用正则表达式来使用和编写该函数,但是对于不同的平台,用户代理种类繁多。我怀疑匹配所有可能的设备会很容易,并且我认为这个问题已经解决了很多次,因此应该为此类任务提供某种完整的解决方案。 我当时在看这个站点,但是可悲的是脚本太神秘了,以至于我不知道如何使用它来创建一个返回true / false的函数。 问

  • 问题内容: 我需要一种在服务器端检测移动浏览器的方法。我想要一种方法,几乎​​不需要做任何设置,也不需要维护,但仍然可以(至少非常准确地)为我提供对Android,Mobile Safari和Blackberry浏览器以及Opera之类的浏览器的准确检测。 我希望至少 涵盖整个移动市场 ,并且如果花费不多,我实际上会更喜欢几乎所有的市场。 问题答案: WURLF是移动浏览器检测的最终方法,并且提供

  • 问题内容: 我有一个网站,我想检测使用哪个浏览器并将其重定向。我有一个php索引,并且代码必须在php中。我发现了很多网站,但它们无法正常工作,或者它们无法检测到许多移动浏览器。您是否知道可以检测许多移动浏览器的任何好的代码或教程? 问题答案: 有我的用户代理代码: 如何使用: