小编Ped*_*lla的帖子

如何在JavaScriptCore中向WebWorker的上下文添加新的本机类?

我有一个应用程序,它通过JavaScriptCore在webkit-gtk浏览器中扩展JavaScript.现在我有几个类,我添加到全局上下文,如下所示:

void create_js(gpointer context, char* className, JSClassDefinition clasDefinition) {
    JSClassRef classDef = JSClassCreate(&clasDefinition);
    JSObjectRef classObj = JSObjectMake(context, classDef, context);
    JSObjectRef globalObj = JSContextGetGlobalObject(context);
    JSStringRef str = JSStringCreateWithUTF8CString(className);
    JSObjectSetProperty(context, globalObj, str, classObj, kJSPropertyAttributeNone, NULL);
    JSStringRelease(str);
}
Run Code Online (Sandbox Code Playgroud)

现在,我还想将这些类添加到WebWorker的上下文中,因此我可以从JS中实例化的worker中调用它们.

我试过Worker这样的对象:

JSStringRef workerStr = JSStringCreateWithUTF8CString("Worker");
JSObjectRef worker = JSObjectGetProperty(context, globalObj, workerStr, NULL);
JSObjectSetProperty(context, worker, str, classObj, kJSPropertyAttributeNone, NULL);
JSStringRelease(workerStr);
Run Code Online (Sandbox Code Playgroud)

但是这会将它添加到WorkerConstructor对象中,并且当new Worker()调用a时,这些类不可用.

javascript customization webkit web-worker javascriptcore

101
推荐指数
1
解决办法
1817
查看次数

Twitter API通过OmniAuth on Rails 3,Net :: HTTPUnauthorized hell

我按照Simple OmniAuth教程(http://asciicasts.com/episodes/241-simple-omniauth),我可以使用我的Twitter帐户登录该服务.现在我想从应用程序访问twitter API和推文.我的代码如下:

class TwitterController < ApplicationController

def prepare_access_token(oauth_token, oauth_token_secret)
consumer = OAuth::Consumer.new("KEY", "SECRET",
    {
        :site => "http://api.twitter.com"
    })
    # now create the access token object from passed values
    token_hash =
    {
      :oauth_token => oauth_token,
      :oauth_token_secret => oauth_token_secret
    }
    access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
    return access_token
end

def tweet
    # Exchange our oauth_token and oauth_token secret for the AccessToken instance.
    @access_token = prepare_access_token(current_user.token, current_user.secret)

    @response = @access_token.request(:post, "http://api.twitter.com/1/statuses/update.json", :status => "Tweet pela API")

    render :html => @response.body
end

end …
Run Code Online (Sandbox Code Playgroud)

twitter ruby-on-rails oauth omniauth

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