小编Val*_*riy的帖子

在Android WebView中进行程序化点击

我有一个网站,href其中将我重定向到https

<a id="mA" href="javascript:pLogin(2)" class="login-link__link private-cab-link"><i class="icon-user"></i>???????????</a>
Run Code Online (Sandbox Code Playgroud)

所以,我可以通过JavaScript点击它.它适用于chrome控制台

javascript:(function(){document.getElementById('mA').click();})()
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试通过单击我的应用程序按钮在WebView中执行相同操作.

public class RostelecomLoginActivity extends Activity {

    WebView webView;
    String url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.activity_rostelecom_login);
        Intent webIntent = getIntent();
        String url = webIntent.getStringExtra("url");

        webView = (WebView) findViewById(R.id.webView1);
        webView.setWebViewClient(new MeWebViewClient());
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setSaveFormData(true);
        webView.getSettings().setSavePassword(true);
        webView.loadUrl(url);

        Button buttoner = (Button) findViewById(R.id.button1);
        buttoner.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                webView.loadUrl("javascript:(function(){document.getElementById('mA').click();})()");
            }
        });

    }

}
Run Code Online (Sandbox Code Playgroud)

我正在使用MyWebViewClient来允许所有证书

public class MeWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String …
Run Code Online (Sandbox Code Playgroud)

javascript android webview

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

在Android WebView中调用javascript函数

我有一个WebView和Button活动.Android sdk 17.网站不是我的,所以无论如何我都无法改变它.我需要通过android按钮点击来执行js代码.

我正在努力做到这一点

public class RostelecomLoginActivity extends Activity {

WebView webView;
String url;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rostelecom_login);

    Intent webIntent = getIntent();
    final String url = webIntent.getStringExtra("url");

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSaveFormData(true);
    webView.getSettings().setSavePassword(true);

    Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            webView.addJavascriptInterface(new Object(){
                @JavascriptInterface
                public void test(){
                    Log.d("JS", "test");
                }
            },"Android");
            webView.loadUrl("javascript:(function(){document.getElementById('mA').click();})()");
        }
    });

    webView.loadUrl(url);

}}
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情.我怎么称呼我的js吧?

javascript android android-webview

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

ActionBar.setHomeButtonEnabled中的NullPointerException

晚上好.我有android:minSdkVersion="14" android:targetSdkVersion="16"

我在onCreate方法中有一个NullPointerException:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tain);

    mCollectionPagerAdapter = new CollectionPagerAdapter(
            getSupportFragmentManager());

    final ActionBar actionBar = getActionBar();

    //Here is the error
    actionBar.setHomeButtonEnabled(false);

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mCollectionPagerAdapter);
    mViewPager.setOnPageChangeListener(
            new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    actionBar.setSelectedNavigationItem(position);
                }
            });

        for (int i = 0; i < mCollectionPagerAdapter.getCount(); i++) {
            actionBar.addTab(actionBar.newTab()
                    .setText(mCollectionPagerAdapter.getPageTitle(i))
                    .setTabListener(this));
        }

}
Run Code Online (Sandbox Code Playgroud)

我在其他项目中有一个simillar代码,它工作正常.两个项目中的库版本也是相似的.什么可能导致这个例外,我可以改变什么?

谢谢.

java android

9
推荐指数
1
解决办法
9171
查看次数

Android POST有空响应

我正在使用HttpClient 向http://www.pgu.donland.ru/php/Login.php发送帖子请求,并希望得到如下响应:

<?xml version="1.0" encoding="utf-8"?><resp status="1" uD="John" UID="2" e=""/>
Run Code Online (Sandbox Code Playgroud)

但不幸的是我一直在:

<?xml version="1.0" encoding="utf-8"?> <resp status="1" uD="" UID="" e=""/>

这里发生了什么?

我正在使用带有HttpClient客户端字段的自定义类,在我的构造函数中我正在使用这些设置:

SchemeRegistry schemeRegistry = new SchemeRegistry();
    schemeRegistry.register(new Scheme("http", PlainSocketFactory
                                    .getSocketFactory(), 80));
    schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(),
                                    443));

    HttpParams params = new BasicHttpParams();
    params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
    params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE,
                                    new ConnPerRouteBean(30));
    params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
    params.setParameter("http.socket.timeout", timeout * 1000);
    params.setParameter("http.connection.timeout", timeout * 1000);
    // params.setParameter("http.connection-manager.timeout", new
    // Long(timeout * 1000));
    params.setParameter("http.protocol.head-body-timeout", timeout * 1000);
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

    ClientConnectionManager cm = new SingleClientConnManager(params,
                                    schemeRegistry);
    this.client = new DefaultHttpClient(cm, …
Run Code Online (Sandbox Code Playgroud)

android

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

比较2个常用数字列表

晚上好,我有一个简单的任务,两个在两个列表中找到共同的数字.但我有一个疯狂的错误.我傻眼了,因为我无法想象什么可能是错的.

public class Test {

    public static List<Integer> same(List<Integer> a1, List<Integer> a2){

        List<Integer> lister = new ArrayList<>();

        for(int i = 0; i < a1.size() ; i++){
            for(int j = 0; j < a2.size(); j++){
                System.out.print(a1.get(i) + " vs " + a2.get(j));
                if(a1.get(i) == a2.get(j)){
                    System.out.print("equals");
                    lister.add(a2.get(j));
                }
                System.out.println();
            }
        }
        return lister;
    }


    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner in = new Scanner(System.in);

        int n = in.nextInt();

        List<Integer> list1 = new ArrayList<>();

        for (int …
Run Code Online (Sandbox Code Playgroud)

java

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

多个本地通知android

下午好.

我希望在我的应用中获得多个本地通知,所以我有

在我的Activity中,此方法应将警报设置为17:20,17:21,17:22,但我在17:22只有一个通知.

public void multiplyAlerts(){

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Intent intent = new Intent(this, LocalNotification.class);

    for(int i = 0; i < 3; i++){

        Calendar t_calendar = Calendar.getInstance();

        t_calendar.set(Calendar.MONTH, Calendar.DECEMBER);
        t_calendar.set(Calendar.YEAR, 2013);
        t_calendar.set(Calendar.DAY_OF_MONTH, 12);

        t_calendar.set(Calendar.HOUR_OF_DAY, 17);
        t_calendar.set(Calendar.MINUTE, 20 + i);
        t_calendar.set(Calendar.SECOND, 23);
        t_calendar.set(Calendar.AM_PM, Calendar.PM);

        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

        alarmManager.set(AlarmManager.RTC_WAKEUP, t_calendar.getTimeInMillis(),pendingIntent);

        System.out.println("Calling Alarm  " + i);

    }}
Run Code Online (Sandbox Code Playgroud)

本地通知类

public class LocalNotification extends BroadcastReceiver {

NotificationManager nm;

@Override
public void onReceive(Context context, Intent intent) {

    nm = (NotificationManager) …
Run Code Online (Sandbox Code Playgroud)

notifications android

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

C strlen错误的答案

我无法弄清楚我的代码有什么问题

char* readString() {

    char* result;
    char line[SIZE];

    if(! fgets(line, sizeof(line), stdin))
        fprintf(stderr, "error\n");

    //printf 1
    printf("line length = %lu\n", strlen(line));

    result = line;

    return result;
}

int main() {

    char* myWord = readString();
    unsigned long len = (unsigned)strlen(myWord);

    //printf 2
    printf("myWord length = %lu\n", len);

    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

如果printf1和printf2都没有注释,那么我得到真正的长度.例如,对于单词'hello',我有输出

line length = 6
myWord length = 6
Run Code Online (Sandbox Code Playgroud)

但是,如果我只评论printf1,对于同一个词'你好',我有

myWord length = 16
Run Code Online (Sandbox Code Playgroud)

c char strlen

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

SpriteKit childNodeWithName找不到现有节点

我在SKScene中有这个代码:

override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {

    var touch: AnyObject = touches.anyObject()
    var point = getPoint(touch.locationInNode(self))
    var name  = NSStringFromCGPoint(point)

    for children in self.children {

        if (children as SKSpriteNode).name == name {

            println("exist!")
        }
    }
    var tempNode = self.childNodeWithName(name)
}
Run Code Online (Sandbox Code Playgroud)

我看到"存在!" 在日志中,所以在children数组中有一个具有此名称的节点,但 tempNodenil.该self.childNodeWithName("//" + name)呼叫也返回.

sprite-kit sknode swift

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