相关疑难解决方法(0)

Android浏览历史记录仅遗漏了一些网站

使用下面的功能,我试图获取用户在其Android手机上从Chrome浏览器访问的最新网址.此功能适用于大多数站点,但不适用于"www.reddit.com".

url如果我访问"www.google.com","www.hulu.com"或"www.kayak.com",则下面的变量会更新,但如果我访问"www.reddit.com"则不会更新.

如果我去"m.reddit.com" 它更新.与facebook相同的问题,检测m.facebook.com但不是www.facebook.com.

我不明白Android记录一个但不记录另一个的"www.reddit.com"和"m.reddit.com"之间有什么区别.

我需要在代码中进行哪些更改才能检测到所有URL访问?

public String returnLastChromeURL(int browserCode) {
    String[] proj = new String[] { Browser.BookmarkColumns.DATE,
            Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL };

    String dateTime;
    Uri uriCustom = Uri
            .parse("content://com.android.chrome.browser/bookmarks");
    String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history,
                                                            // 1 = bookmark
    try {
    Cursor mCur = mContext.getContentResolver().query(uriCustom, proj, sel,
            null, BookmarkColumns.DATE + " ASC");
    mCur.moveToFirst();
    mCur.moveToLast();

        dateTime = mCur.getString(mCur
                .getColumnIndex(Browser.BookmarkColumns.DATE));
        title = mCur.getString(mCur
                .getColumnIndex(Browser.BookmarkColumns.TITLE));
        url = mCur.getString(mCur
                .getColumnIndex(Browser.BookmarkColumns.URL)); …
Run Code Online (Sandbox Code Playgroud)

android bookmarks google-chrome browser-history android-cursorloader

24
推荐指数
1
解决办法
878
查看次数

我如何欺骗一个查看JavaScript对象"导航器"的网站,看看我不在Windows上?

我正在尝试浏览一个网站,但是,它只适用于Windows和Mac,因为它们使用navigator.platformJavaScript来查找我正在运行的体系结构.当然,他们也使用浏览器的用户代理,但这很容易欺骗.

这是有问题的.js:http://pastebin.com/f56fd608d.负责浏览器检测的代码位于顶部.有没有办法在网站运行之前更改.js文件,或类似的东西,所以我可以取消支票?

使用JavaScript控制台产生:

>navigator.platform
Linux i686

显然,我更改了浏览器的用户代理,但navigator.platform似乎没有从用户代理获取它的值.

也许有人知道如何更改返回的值navigator.platform,因为我讨厌在VirtualBox下运行Windows来使用此站点.

编辑:这可能是有趣的,因为Linux用户可能被人为地拒绝访问网站,并且无能为力.

javascript browser user-agent

17
推荐指数
3
解决办法
1万
查看次数

使用不同的用户代理加载iframe内容

是否可以使用不同的用户代理加载iframe?使用iframe的移动用户代理可以帮助我的应用将移动网站显示为悬停弹出窗口.

例如,仅当用户代理来自移动用户代理时,Google才会显示移动搜索结果页面.

有没有其他解决方案或这个想法有任何安全风险?

html browser popup

16
推荐指数
3
解决办法
3万
查看次数

如何在OS X Yosemite中更改WKWebview的用户代理?

你如何改变使用的用户代理WKWebview

使用旧版本WebView,我可以编写以下内容来更改用户代理:

[myWebView setCustomUserAgent:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4)
 AppleWebKit/537.77.4 (KHTML,like Gecko) Version/7.0.5 Safari/537.77.4"];
Run Code Online (Sandbox Code Playgroud)

xcode webview osx-yosemite wkwebview

10
推荐指数
2
解决办法
1万
查看次数

我如何监视打字稿的getter和setter?

当我进行单元测试时,我的getter是Typescript的setter,我无法找到一种方法来监视那些getter和setter.而是立即评估对象.我正在使用Jasmine进行单元测试.

getter-setter jasmine typescript

10
推荐指数
2
解决办法
7226
查看次数

在HTML或JavaScript中设置自定义userAgent

有没有办法做到这一点?我正在尝试向网站发送GET请求,但我想自定义我的UserAgent.有没有办法在纯HTML和JavaScript中执行此操作?我希望它能在本地执行.

html javascript user-agent get

8
推荐指数
4
解决办法
2万
查看次数

使用 Sinon.js 测试 navigator.browserLanguage 或 navigator.language

如何使用sandbox.stub测试框架Sinon来覆盖egnavigator.languagenavigator.userAgent进行测试?

当我尝试使用以下内容时:

suite('agent', function () {
  var sandbox;
  setup(function () {
    // create sandbox environment for mocking about
    sandbox = sinon.sandbox.create();
  });
  teardown(function () {
    // restore the environment as it was before
    sandbox.restore();
  });
  test('language', function () {
    assert.equal(au.env.agent.language, navigator.language);
    if (!navigator.language) assert.equal(au.env.agent.language, 'de');
    var lang = "test_URK";
    sandbox.stub(window.navigator, 'language', lang);
    assert.equal(au.env.agent.language, lang);
  });
});
Run Code Online (Sandbox Code Playgroud)

然后我会收到以下错误:无法存根不存在的自有属性语言

这些存根均未按预期工作:

  • sandbox.stub(window.navigator, '语言', lang);
  • sandbox.stub(navigator, 'browserLanguage', lang);

正在模拟导航器对象

有什么提示吗?

javascript unit-testing mocha.js sinon web-component-tester

5
推荐指数
1
解决办法
3954
查看次数

如何设置导航器userAgent?

好吧,这是我设法登陆的边缘案例.我正在测试我的应用程序在新的Tizen操作系统上.我的JS代码有成千上万的导航器检查.就像是:

navigator.userAgent.toLocaleLowerCase().indexOf("android") || navigator.userAgent.toLocaleLowerCase().indexOf("iPad")
Run Code Online (Sandbox Code Playgroud)

现在Tizen OS在我的测试设备上的userAgent没有这些字符串.很多我的CSS和JS都因此而破裂.我现在处于POC模式,并且不想花时间为所有这些条件添加额外的检查.有没有办法以编程方式设置userAgent?有点像:

navigator.userAgent += " Tizen" //does not work.
Run Code Online (Sandbox Code Playgroud)

MDN说它是一个读写属性.我无法修改它.帮助我.欺骗userAgent的另一种聪明方式或者设置它的正确方法.谢谢.

javascript browser user-agent

4
推荐指数
2
解决办法
2万
查看次数

如何模拟在提供程序私有函数中手动注入的$ window?

我有以下提供者:

angular.module('MyApp').provider('MyDevice', function () {

    var ngInjector = angular.injector(['ng']),
        $window = ngInjector.get('$window');

    function isMobileDevice () {
        return (/iPhone|iPod|iPad|Silk|Android|BlackBerry|Opera Mini|IEMobile/)
            .test($window.navigator.userAgent || $window.navigator.vendor || $window.opera);
    }

    this.$get = function () {
        return {
            isDesktop: function () {
                return !isMobileDevice();
            },
            isMobile: function () {
                return isMobileDevice();  
            }
        };
    };

});
Run Code Online (Sandbox Code Playgroud)

以下测试规范:

describe('MyDeviceProvider', function () {

    var myDevice;

    beforeEach(function () {
        inject(['MyDevice', function (_myDevice_) {
            myDevice = _myDevice_;
        }]);
    });

    it('Test #1', function () {
        // Mock '$window.navigator.userAgent' to "desktop"
        expect(myDevice.isDesktop()).toEqual(true);
        expect(myDevice.isMobile()).toEqual(false); …
Run Code Online (Sandbox Code Playgroud)

unit-testing angularjs karma-jasmine angular-mock

4
推荐指数
1
解决办法
8431
查看次数

在特定测试中模拟导航语言

我正在使用Jasmine来测试JavaScript代码,我想知道是否有办法为特定测试设置导航语言(或浏览器语言)?

javascript navigator jasmine

3
推荐指数
1
解决办法
1908
查看次数